【问题标题】:Does ASP.NET Core Identity uses Sessions for authentication?ASP.NET Core Identity 是否使用会话进行身份验证?
【发布时间】:2021-03-28 22:58:17
【问题描述】:

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

【问题讨论】:

  • 简短的回答是。您可以自定义使用会话的东西,但所有开箱即用的典型设置都是无会话的。

标签: asp.net-mvc asp.net-core asp.net-identity claims-authentication


【解决方案1】:

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

Configure ASP.NET Core Identity

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

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

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

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

ASP.NET Core session authentication

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • asp.net 核心身份不使用该表进行身份验证。
    猜你喜欢
    • 2020-01-19
    • 1970-01-01
    • 2022-01-23
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    相关资源
    最近更新 更多