FedAuth cookie在Firebug中不显示到期日期

邪恶博士

我有一个使用SSL保护的ASP.Net MVC网站,正在使用System.IdentityModel.Services并正在创建令牌,如下所示:

SessionSecurityToken token = new SessionSecurityToken(myClaimsPrincipal, TimeSpan.FromDays(1));
SessionAuthenticationModule sam = FederatedAuthentication.SessionAuthenticationModule;
sam.WriteSessionTokenToCookie(token);

当我在浏览器中访问网站时,Firebug不会显示预期的到期日期。而是将到期日期显示为Session

到期日期=“会话”

谁能解释为什么这样吗?我假设ASP.Net在读取Cookie时可以在内部看到实际的到期日期?更何况,Cookie的有效时间实际设置在哪里?

haim770

您在这里混合了两种不同的东西:

  • 令牌有效期一直在确定,直到令牌有效为止。在那之后,即使将令牌附加到请求中,也将其视为无效并且将不被接受。通常,到期时间是在令牌本身内加密的,这意味着它仅由令牌发行者控制。

  • Cookie过期是由客户端(在这种情况下,您的Web浏览器)控制的。Cookie过期后,将不再附加到该请求。但是,如果浏览器决定发送它,它将一直工作到令牌到期为止。

在您的特定情况下,令牌过期设置为1天,但是由于Cookie过期设置为“会话”,这意味着如果您要在令牌过期之前的某个时间结束会话(通常通过关闭浏览器窗口) ,Cookie将不会发送,您将需要重新登录。

1天后(令牌过期时),即使您仍处于会话中,也始终需要重新登录。

更新(根据您的评论):

可以简单地设置票证到期日和Cookie到期日,因为有时票证不一定包含在Cookie中。可以使用其他方法(QueryString,自定义HTTP标头等)将其发送到服务器。但是,确实自然的事情是将它们都设置为相同的到期时间。

您的情况也是如此SessionSecurityToken,如果您将其IsPersistent标志设置true,则会注意到Cookie的过期时间现在与票证相同:

SessionSecurityToken token = new SessionSecurityToken(myClaimsPrincipal, TimeSpan.FromDays(1));
token.IsPersistent = true;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将FedAuth cookie传递给Web服务调用

来自分类Dev

Sharepoint 2013中的联合身份验证:获取rtFa和FedAuth cookie

来自分类Dev

如何使解决方案中每个应用程序的FedAuth cookie唯一?

来自分类Dev

如何在Javascript中设置Cookie的到期日期

来自分类Dev

无法在JavaScript中设置Cookie的到期日期

来自分类Dev

未设置Cookie的到期日期

来自分类Dev

Cookie 到期日期等于 -1

来自分类Dev

Cookie 到期日期不会改变。

来自分类Dev

创建具有到期日期的 Cookie

来自分类Dev

Angular的到期日期

来自分类Dev

延长密钥库中trustCertEntry的到期日期

来自分类Dev

从.ipa文件中检索证书的到期日期?

来自分类Dev

如何在构造函数中设置到期日期?

来自分类Dev

在GnuPG中,如何设置密钥的绝对到期日期?

来自分类Dev

iOS发行文件中的到期日期

来自分类Dev

如何在Java中设置软件的到期日期?

来自分类Dev

根据期限计算JavaScript中的最终到期日期

来自分类Dev

在Facebook登录名中设置到期日期

来自分类Dev

从 jwt 令牌中读取到期日期

来自分类Dev

在 C++11 中检查到期日期

来自分类Dev

php date()和到期日期()

来自分类Dev

TinyMce4到期日期

来自分类Dev

检查Active Directory到期日期

来自分类Dev

到期日期和页面刷新

来自分类Dev

訂閱到期日期

来自分类Dev

解析 REST 令牌到期日期

来自分类Dev

经典Asp Cookie到期日期并非总是会被设置

来自分类Dev

将Cookie到期日期设置为确切时间

来自分类Dev

如何设置ASP.NET_SessionId cookie的到期日期?