【问题标题】:Avoid session cookies in Asp.NET Core 2.2 + IdentityServer避免在 Asp.NET Core 2.2 + IdentityServer 中使用会话 cookie
【发布时间】:2020-01-08 11:18:06
【问题描述】:

我一直在使用 Asp.NET Core 2.2 和 Identity,使用了 here 解释的示例。特别是我正在使用 StsServer 应用程序,它允许用户使用 OpenID 混合流或 Windows 身份验证进行身份验证。

我看到的是它存储:

  • 如果没有记住用户身份,则 3 个会话 cookie
  • 2 个会话 cookie + 1 个 cookie(如果在重新打开浏览器时记住了用户身份)

有没有办法避免此类 cookie?

谢谢,

【问题讨论】:

    标签: c# cookies asp.net-core-mvc identityserver4


    【解决方案1】:

    .AspNetCore.AntiForgergy cookie 不是会话 cookie。这是针对 CSRF 的。 .AspNetCore.Identity cookie 也不是会话 cookie。当使用由 ASP.NET Core Identity 支持的身份和身份服务器时,身份验证 cookie 会保持用户的身份验证状态。最后,idsrv.session cookie 来自 Identity Server,用于 OIDC 会话管理,这不是您可能想到的“会话”。它还支持维护经过身份验证的状态。

    无论长短,它们都有特定的用途,您需要所有这些。

    【讨论】:

    • 谢谢。您是否知道有任何其他方法可以完全避免使用 cookie?我的意思是 Identity Server 的替代品,仍然使用 ASP.NET 核心。
    • 为什么说 .AspNetCore.Identity 不是会话 cookie?如果我没有勾选在这台电脑上记住我复选框,它没有到期日期,所以我假设它可以称为会话 cookie
    • 除了静态内容网站外,任何东西都无法避免 Cookie。 HTTP 是一种无状态协议。 Cookie 使有状态的交互成为可能。如果您完全需要维护状态,则将涉及 cookie。没有办法解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 2019-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多