2017-11-12 15 views
1

私は、PHP開発者が自分のクッキーにIDを渡して、そのクッキーにデータベース内の参照を保存することがありました。そのため、クッキーによってユーザーを認証することができます。しかしASP.Net Coreでは、私はそれを見たことがありません。ASP.Net Coreの「クッキー認証」はそのクッキーへの参照をどこに保存しますか?

このCookieがこのユーザーによって所有されていることをASP.Net Coreがどのように知っていますか?すべてがメモリに保存されていますか?

「はい」の場合は、アプリケーションを再起動するとユーザーが再度ログインする必要がありますか?または、アプリケーションを再起動した後でも、ASP.Net Coreがクッキーへの参照を保持するための方法はありますか?

+0

クッキーはブラウザに保存されています。セッションが期限切れでない場合は、セッションを再利用する必要があります。 – Nikolaus

+0

@Nikolausはい、しかし、次回のリクエストでそのクッキーがサーバーに返送されると、サーバーはこのクッキーが有効であることをどのように知ることができますか?ユーザーが現在無効になっている場合はどうなりますか?または変更されたパスワード。クライアントに保存され、サーバー側で参照が参照されていない場合、サーバーはそのCookieを取り消すことができますか? –

+1

Cookieには、暗号化された形式のユーザーに関する情報が含まれているため、説明するCookieの種類(ユーザーに関する情報へのポインタのみを格納します)とは異なります。 – Evk

答えて

4

ClaimsPrincipalはシリアル化され、暗号化され、クッキーとしてクライアントに送信されます。クッキーが作成されると、それが単一のアイデンティティになります。クライアントが要求を行うと、サーバーはcookieを送信します。このcookieは、サーバーが(検証として機能する)復号化し、HttpContextに逆シリアル化します。

関連する問題