asp.net - IdentityServer4 中的 Cookie

标签 asp.net cookies identityserver4

有人能解释一下在 Identity Server4 中成功登录后发送到用户浏览器的 cookie 的用途吗?此外,我在底部还有三个较小的相关问题。

客户端在 中定义的 ASP.NET Core 中使用 cookie 中间件Startup.cs 文件。

app.UseCookieAuthentication()

很明显 Identity Server 创建了哪些 token 以及 ASP.NET Core 中间件创建了哪些 cookie,但我不确定每个 cookie 包含哪些内容。

ASP.NET Core 中间件决定创建分块 cookie 可能是由于 cookie 大小 (4050B + 865B)。

我一直试图找到一种方法来解密 cookie 以使用 Data Protection 读取值。 ASP.NET Core 提供的 API 没有任何运气。
  • idsvr
  • idsvr.session
  • .AspNetCore.coookie
  • .AspNetCore.coookieC1
  • .AspNetCore.coookieC2
  • .AspNetCore.Antiforgery。

  • Screenshot from developer tools in Internet Explorer
  • 哪个 cookie 包含 Identity Server 发出的 id_token、access_token?
  • CookieName 可用于更改由 ASP.NET Core 中间件创建的 cookie 的名称,不同的客户端是否应该共享相同的 cookie 名称或它们是否需要具有单独的 session cookie?
  • 可以使用 Data Protection 解密身份服务器 cookie 吗? API?
  • 最佳答案

  • 默认情况下,AFAIK id_token、access_token 不存储在 cookie 中。但如果需要,您可以将它们存储在 session cookie(由 ASP.NET Core 中间件创建的 cookie)中。 Here is how it is done对于具有混合流的身份服务器 3,使用 OpenID 连接 OWIN 中间件。 asp.net 核心中间件也应该有类似的选项。
  • 每个客户端可以有相同的 cookie 名称,但他们不需要这样做。顺便说一句,cookie 只能由创建它的客户端访问。
  • 我不知道。
  • 关于asp.net - IdentityServer4 中的 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40510852/

    相关文章:

    mysql - 从一个源绑定(bind)多个下拉列表

    c# - 如何删除使用 UserManager.CreateAsync 创建的用户

    java - 如何从 android.webkit.CookieManager 获取 httpOnly cookie

    javascript - Web 浏览器未在 Ajax 调用上设置 cookie

    asp.net-core - Hook 到 IdentityServer4 session cookie 滑动过期

    identityserver4 - 使用身份服务器 4 的两因素身份验证

    asp.net - 在哪里可以找到有关 ASP.NET MVC2 的文档/教程?

    Python 请求 - "To continue your browser has to accept cookies and has to have JavaScript enabled."

    azure - Http header 已删除 Azure Web 应用程序