- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 SSL 保护的 ASP.Net MVC 站点,我正在使用 System.IdentityModel.Services
并像这样创建 token :
SessionSecurityToken token = new SessionSecurityToken(myClaimsPrincipal, TimeSpan.FromDays(1));
SessionAuthenticationModule sam = FederatedAuthentication.SessionAuthenticationModule;
sam.WriteSessionTokenToCookie(token);
当我在浏览器中访问网站时,Firebug 没有按预期显示到期日期。相反,到期日期显示为 Session:
谁能解释一下这是为什么?我假设 ASP.Net 在读取 cookie 时仍然可以看到内部的实际到期日期?更何况,cookie的过期时间到底是在哪里设置的呢?
最佳答案
你在这里混合了两种不同的东西:
Token Expiration 确定 token 有效的时间。在那之后,即使 token 附加到请求,它也被视为无效并且不会被兑现。通常过期时间在 token 本身内加密,这意味着它完全由 token 发行者控制。
Cookie 过期 是由客户端(在本例中为您的网络浏览器)控制的。一旦 Cookie 过期,它就不再附加到请求中。但是,如果浏览器决定发送它,它将一直有效直到 token 到期。
在您的特定情况下, token 过期设置为 1 天,但由于 Cookie 过期设置为“ session ”,这意味着如果您要在之前的某个时间点结束 session (通常通过关闭浏览器窗口) Token 过期,将不会发送 Cookie,您将需要重新登录。
1 天后( token 过期时),即使您仍在 session 中,您也总是需要重新登录。
更新(根据您的评论):
Ticket过期时间和Cookie过期时间可以分开设置,只是因为有时Ticket不一定包含在Cookie中。它可以使用其他方法(查询字符串、自定义 HTTP header 等)发送到服务器。然而,确实很自然的做法是将它们都设置为相同的到期时间。
在您的 SessionSecurityToken
中也是如此,如果您将其 IsPersistent
标志设置为 true
,您会注意到 Cookie 过期现在与 Ticket 相同:
SessionSecurityToken token = new SessionSecurityToken(myClaimsPrincipal, TimeSpan.FromDays(1));
token.IsPersistent = true;
关于asp.net-mvc - FedAuth cookie 不在 Firebug 中显示到期日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25782769/
我在尝试跟踪过期的 WIF 身份验证 session /cookie 时遇到了一个有趣的问题。 作为背景知识:该站点是 MVC 3,使用与 ADFS 服务器作为 STS 的信任的 Windows Id
我是基于声明的身份验证的新手。谁能解释一下什么是 SAML token 和 FedAuth cookie?它们之间的关系是什么? 最佳答案 SAML token 是一段 XML,包含有关用户身份的信息
我有一个 ASP.NET 应用程序,它使用 Azure ACS(和间接 ADFS)进行身份验证 - 一切正常。现在我被要求将 SessionToken 传递给另一个后端服务,在那里可以验证它并提取声明
我们正在使用 Windows Identity Foundation 为我们的应用程序实现单一登录解决方案。我遇到的问题是 FedAuth cookie 在我认为应该在依赖方方面过期时没有过期。 Fe
我有一个在 Azure 上运行的 ASP.NET 站点,网址为 https://[appname].cloudapp.net。我在 https://[appname].cloudapp.net/Web
我有一个使用 SSL 保护的 ASP.Net MVC 站点,我正在使用 System.IdentityModel.Services 并像这样创建 token : SessionSecurityToke
我正在努力弄清楚为什么 ClaimsPrincipal只有 7 项 claim 正在产生 5 FedAuth来自 FAM 的 Cookie(FedAuth1、FedAuth2、FedAuth3、F
场景如下:我需要对用户(使用他的大学帐户)执行联合身份验证到他大学的 Sharepoint 站点,并同时获取 FedAuth 和 rtFa cookie(我必须将其传递给 SharePoint RES
我很难更改 ASP.NET MVC 应用程序上的 SameSite 属性。这是场景: 我正在尝试将我的 ASP.NET 应用程序加载到 iframe 中,并且由于 Google Chrome 80+
我将 WIF 与 WS Federation 结合使用,以便我的 ASP.NET 应用程序可以针对 STS (Thinktecture IdentityServer) 进行身份验证。在我的 RP 中,
我有一个使用 Windows Server 2012 R2、ADFS 和 Sharepoint 2013 设置的测试环境。我可以使用 ADFS 作为声明身份提供程序成功登录到 Sharepoint 2
我认为默认超时是每半小时一次。 我想将其更改为 2 周。有人有任何想法吗? 这通常是从 STS 端还是客户端完成?表单例份验证是否也受到了阻碍,还是现在无关紧要? 最佳答案 我自己刚刚修复了这个问题,
我是一名优秀的程序员,十分优秀!