質問編集履歴
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 のファイルの
|