質問編集履歴

2

タイトルを見直し、解決方法の追記

2021/02/12 06:04

投稿

woodcube
woodcube

スコア32

title CHANGED
@@ -1,1 +1,1 @@
1
- ASP.NETでUser.Identityに値が無く認証状態が維持できない
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)でUser.Identityに値が無く、Falseに判断されてしまう)
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)) //←ここのUserに値が入らないので、Trueにならない
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)

2021/02/12 06:04

投稿

woodcube
woodcube

スコア32

title CHANGED
@@ -1,1 +1,1 @@
1
- ASP.NET SignInManager.IsSignedIn(User)のUserに値が入っていない
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 のファイルの