2

ASP.NET Core 3.1/5 Identity 是否使用会话进行身份验证?我知道它使用 cookie 将用户信息存储在客户端计算机上以供下一个请求,但我不明白的是,只有 cookie 就足够了,还是它还在服务器上为这个身份验证 cookie 创建了任何会话?

4

2 回答 2

3

默认情况下,Asp.net 核心身份是基于 cookie 的,用户的身份存储在 cookie 中。您可以查看以下链接来配置 ASP.NET Core Identity。

配置 ASP.NET Core 标识

一般使用cookie就够了,在浏览器会话关闭(关闭浏览器)后,会清除cookie,如果重新打开网站,我们必须重新登录。

如果要使用 session 来存储用户身份,可以设置CookieAuthenticationOptions.SessionStore属性来配置身份验证提供程序选项。

SessionStore 属性是一个可选容器,用于跨请求存储身份。使用时,只会向客户端发送会话标识符。这可用于缓解具有非常大身份的潜在问题。

更多关于使用SessionStore的详细信息,可以参考以下文章:

ASP.NET Core 会话身份验证

于 2020-12-21T09:25:02.650 回答
0

在 Identity 框架中,您有一个名为 dbo.AspNetUserTokens 的额外表,其中存储了用户令牌。

这样就可以验证浏览器在请求期间发送的令牌。

还有一种方法实际上不需要服务器上的令牌。为此,请查看:https ://jwt.io/

于 2020-12-18T09:37:11.390 回答