質問編集履歴
2
タイトルを見直し、解決方法の追記
    
        title	
    CHANGED
    
    | 
         @@ -1,1 +1,1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            ASP.NETで 
     | 
| 
      
 1 
     | 
    
         
            +
            ASP.NETで認証機能を後からの追加で作成した場合、ログインしてもログイン済み状態にならない
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ### 前提・実現したいこと
         
     | 
| 
       2 
2 
     | 
    
         
             
            Visual Studio 2019でASP.Net Coreの3.1でWebアプリケーションを作っています。
         
     | 
| 
       3 
     | 
    
         
            -
            認証の機能を入れたのですが、ログインに成功はしているのですが、その後ログインしている状態になっていないようです。
         
     | 
| 
      
 3 
     | 
    
         
            +
            認証の機能を後から入れたのですが、ログインに成功はしているのですが、その後ログインしている状態になっていないようです。
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
            1.RazorでWeb アプリケーションを作成しました(認証なしで作成)
         
     | 
| 
       6 
6 
     | 
    
         
             
            2.「新しいスキャフォールディングアイテムの追加」でIDを選び、全てのファイルをオーバーライドします。
         
     | 
| 
         @@ -10,7 +10,7 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
            5.実際に実行し、ユーザ登録を行うとDBにアカウント情報が入り、ログインも成功します。
         
     | 
| 
       11 
11 
     | 
    
         
             
             (例えばパスワードを間違えるとエラーになる)
         
     | 
| 
       12 
12 
     | 
    
         
             
            6.しかし、表示されるページは、ログインされた状態にはなっていないようです。
         
     | 
| 
       13 
     | 
    
         
            -
            (SignInManager.IsSignedIn(User)で 
     | 
| 
      
 13 
     | 
    
         
            +
            (SignInManager.IsSignedIn(User)でFalseに判断されてしまう)
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            ### 発生している問題・エラーメッセージ
         
     | 
| 
       16 
16 
     | 
    
         
             
            Page\Shared\_LoginPartial.cshtml のファイルの
         
     | 
| 
         @@ -22,7 +22,7 @@ 
     | 
|
| 
       22 
22 
     | 
    
         
             
            @inject UserManager<NInSample003User> UserManager
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
            <ul class="navbar-nav">
         
     | 
| 
       25 
     | 
    
         
            -
            @if (SignInManager.IsSignedIn(User))   //←ここ 
     | 
| 
      
 25 
     | 
    
         
            +
            @if (SignInManager.IsSignedIn(User))   //←ここで、Trueにならない
         
     | 
| 
       26 
26 
     | 
    
         
             
            {
         
     | 
| 
       27 
27 
     | 
    
         
             
               //ログインしている
         
     | 
| 
       28 
28 
     | 
    
         
             
            }
         
     | 
| 
         @@ -31,7 +31,7 @@ 
     | 
|
| 
       31 
31 
     | 
    
         
             
              //ログインしていない
         
     | 
| 
       32 
32 
     | 
    
         
             
            }
         
     | 
| 
       33 
33 
     | 
    
         
             
            ```
         
     | 
| 
       34 
     | 
    
         
            -
            本来ならば、ログイン後は「User」に値が入るようなのですが、入っていないのが原因のようです。
         
     | 
| 
      
 34 
     | 
    
         
            +
            本来ならば、ログイン後は「User.Identity」の中にユーザ名など値が入るようなのですが、入っていないのが原因のようです。
         
     | 
| 
       35 
35 
     | 
    
         
             
            ※プロジェクトを「認証あり」で作成して、ステップ実行で動作を見たら、ログイン処理後にデータが入るというのは確認できました。
         
     | 
| 
       36 
36 
     | 
    
         
             
            しかし、上記の方法で作成した場合は、中身が入らない状態です。
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
         @@ -49,4 +49,11 @@ 
     | 
|
| 
       49 
49 
     | 
    
         
             
            ・最初から認証ありでプロジェクトを作成した場合は、項目を追加できないという認識でいます。
         
     | 
| 
       50 
50 
     | 
    
         
             
             (クラスを継承して項目を追加するのがセオリーと思っています)
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
       52 
     | 
    
         
            -
            以上、よろしくお願いします。
         
     | 
| 
      
 52 
     | 
    
         
            +
            以上、よろしくお願いします。
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            ### うまくいかなかった原因(改善方法)
         
     | 
| 
      
 55 
     | 
    
         
            +
            回答者の協力により、下記の事で解決しました。
         
     | 
| 
      
 56 
     | 
    
         
            +
             → Startup.csの中にapp.UseAuthentication(); 
         
     | 
| 
      
 57 
     | 
    
         
            +
            が足りていないという事がわかりました。
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            最初から認証を行う設定でプロジェクトを作成した場合は、自動で入るのですが、後で追加した場合は手入力する必要があるようです。
         
     | 
1
得られていない情報を正確に書き直しました(User→User.Identity)
    
        title	
    CHANGED
    
    | 
         @@ -1,1 +1,1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            ASP.NET 
     | 
| 
      
 1 
     | 
    
         
            +
            ASP.NETでUser.Identityに値が無く認証状態が維持できない
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -10,6 +10,7 @@ 
     | 
|
| 
       10 
10 
     | 
    
         
             
            5.実際に実行し、ユーザ登録を行うとDBにアカウント情報が入り、ログインも成功します。
         
     | 
| 
       11 
11 
     | 
    
         
             
             (例えばパスワードを間違えるとエラーになる)
         
     | 
| 
       12 
12 
     | 
    
         
             
            6.しかし、表示されるページは、ログインされた状態にはなっていないようです。
         
     | 
| 
      
 13 
     | 
    
         
            +
            (SignInManager.IsSignedIn(User)でUser.Identityに値が無く、Falseに判断されてしまう)
         
     | 
| 
       13 
14 
     | 
    
         | 
| 
       14 
15 
     | 
    
         
             
            ### 発生している問題・エラーメッセージ
         
     | 
| 
       15 
16 
     | 
    
         
             
            Page\Shared\_LoginPartial.cshtml のファイルの
         
     |