ASP.NET Core Identity 是否使用 Sessions 进行身份验证?

Does ASP.NET Core Identity uses Sessions for authentication?

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

在身份框架中,您有一个名为 dbo.AspNetUserTokens 的额外 table,用于存储用户令牌。

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

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

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

Configure ASP.NET Core Identity

一般情况下使用cookie就可以了,浏览器session关闭(关闭浏览器)后会清除cookie,如果重新打开网站需要重新登录。

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

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

更详细的SessionStore的使用方法,可以参考以下文章: