2016-11-09 40 views
4

有人可以解释在Identity Server4中成功登录后发送给用户浏览器的cookie的用途。底部还有三个较小的相关问题。IdentityServer4中的Cookie

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

app.UseCookieAuthentication() 

这是很明显的令牌身份Server创建和饼干ASP.NET核心中间件造成的,但我不知道什么样的内容每个cookie containts。

ASP.NET Core中间件决定创建可能由于Cookie大小(4050B + 865B)而导致的分块Cookie。

我一直在试图找到一种方法来解密cookie,使用ASP.NET Core提供的Data Protection API读取值,但没有任何运气。

  • idsvr
  • idsvr.session
  • .AspNetCore.coookie
  • .AspNetCore.coookieC1
  • .AspNetCore.coookieC2
  • .AspNetCore.Antiforgery。

Screenshot from developer tools in Internet Explorer

  1. 哪个cookie包含id_token,ACCESS_TOKEN通过Identity Server的发行?
  2. CookieName可用于更改ASP.NET Core中间件创建的Cookie的名称,不同的客户端是否共享相同的Cookie名称,或者他们是否需要单独的会话Cookie?
  3. 可以通过使用Data Protection API解密Identity Server Cookie吗?

回答

0
  1. AFAIK id_token,是的access_token不默认存储在cookie中。但是,如果需要,您可以将它们存储在会话cookie(ASP.NET Core中间件创建的cookie)中。 Here is how it is done身份服务器3与混合流使用OpenID连接OWIN中间件。对于asp.net核心中间件也应该有类似的选项。

  2. 每个客户可以有相同的cookie名称,但他们不需要这样做。由此,cookie只能由创建它的客户端访问。

  3. 我不知道。