回答編集履歴
3
追記
answer
CHANGED
@@ -10,4 +10,22 @@
|
|
10
10
|
|
11
11
|
ということになったのだと思います。それ以外に原因は思い当たりません。Set-Cookie がどうなっているか調べてみてください。
|
12
12
|
|
13
|
-
ちなみに、有効期限 expires=... が指定されている場合はブラウザはクッキーを HDD に保存します。なので、ブラウザを閉じたり PC をシャットダウンしたりしても、再度ブラウザを立ち上げてアクセスすれば、ブラウザはクッキーを HDD から取得してサーバーに送ります。(有効期限内であればの話です)
|
13
|
+
ちなみに、有効期限 expires=... が指定されている場合はブラウザはクッキーを HDD に保存します。なので、ブラウザを閉じたり PC をシャットダウンしたりしても、再度ブラウザを立ち上げてアクセスすれば、ブラウザはクッキーを HDD から取得してサーバーに送ります。(有効期限内であればの話です)
|
14
|
+
|
15
|
+
**【追記】**
|
16
|
+
|
17
|
+
何故 ASP.NET Core Identity を使わないで独自認証を実装しているのか分かりませんが、もし知らなかったということなら方針変更して ASP.NET Core Identity を使ってはいかがですか?
|
18
|
+
|
19
|
+
テンプレートで生成されるアプリの Login ページには下の画像のように Remember me? チェックボックスが配置されていて、それにチェックを入れてログインすれば認証クッキーに expires=... が設定されるようになっています。
|
20
|
+
|
21
|
+

|
22
|
+
|
23
|
+
応答ヘッダに含まれる Set-Cookie は以下のようになり、別途設定できる認証チケットの有効期間で expires=... が追加されます。
|
24
|
+
|
25
|
+
```
|
26
|
+
Set-Cookie: .AspNetCore.Identity.Application=CfD...; expires=Wed, 03 Mar 2021 03:28:45 GMT; path=/; secure; samesite=lax; httponly
|
27
|
+
```
|
28
|
+
|
29
|
+
Remember me? チェックボックスにチェックを入れないでログインした場合は expires=... は設定されないので、ブラウザを閉じればクッキーは消えます。
|
30
|
+
|
31
|
+
どうしても独自実装という場合は、それにも同様な機能を実装してはいかがですか。
|
2
訂正
answer
CHANGED
@@ -10,4 +10,4 @@
|
|
10
10
|
|
11
11
|
ということになったのだと思います。それ以外に原因は思い当たりません。Set-Cookie がどうなっているか調べてみてください。
|
12
12
|
|
13
|
-
ちなみに、有効期限 expires=...
|
13
|
+
ちなみに、有効期限 expires=... が指定されている場合はブラウザはクッキーを HDD に保存します。なので、ブラウザを閉じたり PC をシャットダウンしたりしても、再度ブラウザを立ち上げてアクセスすれば、ブラウザはクッキーを HDD から取得してサーバーに送ります。(有効期限内であればの話です)
|
1
訂正
answer
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
> COOKIEに保存する内容はログイン情報のIDの文字列で例えば"XXX"です。下記のコードで設定と取得を行っています。
|
2
2
|
|
3
|
-
クッキーに有効期限を設定してない(即ち、Set-Cookie: に expires=...
|
3
|
+
クッキーに有効期限を設定してない(即ち、Set-Cookie: に expires=... が指定されてない)ようですね。
|
4
4
|
|
5
|
-
その場合、クッキーはブラウザのメモリにしか保持されません。従って、ブラウザを閉じればクッキーは消えます。逆に、ブラウザを閉じなければ
|
5
|
+
その場合、クッキーはブラウザのメモリにしか保持されません。従って、ブラウザを閉じればクッキーは消えます。逆に、ブラウザを閉じなければクッキーは消えません。要求のたびに送られ続けます。
|
6
6
|
|
7
7
|
それゆえ、
|
8
8
|
|