请帮助我理解会话令牌到期时间的概念。
以下是我从 STS 收到令牌后设置会话令牌的方式。
var principal = validationfunction();//returns claimsprincipal
if (principal != null)
{
var token = new SessionSecurityToken(principal.ClaimsPrincipal)
{
IsReferenceMode = false
};
//this makes sure that the identity and claims are written to the cookie.
FederatedAuthentication.WSFederationAuthenticationModule.SetPrincipalAndWriteSessionToken(token, true);
}
请确认这是否属实:
如果令牌生存期为 10 分钟。 如果用户处于非活动状态 10 分钟并且未向网站,会话令牌过期,并将其重定向到 STS 登录页面。
如果用户处于活动状态并不断刷新页面/访问会话令牌生存期获得
的不同页面刷新。这意味着每次用户访问页面时,令牌都会获得新的到期值。因此,用户不会每 10 分钟被重定向到登录页面。如果用户请求受 STS 保护的资源 (Web API(,则令牌的生存期被视为绝对值。这意味着无论用户是否处于活动状态,在生成令牌 10 分钟后,如果用户请求 Web api,令牌将无效并重定向到 STS 登录页面。
上述概念是否正确?
-
您需要自行设置令牌生存期。默认值为 IIRC - 10h。当令牌过期并且您正在访问受保护的资源时,应用程序将发出 401。如果您有 WsFed modue - 这将导致往返 STS
-
默认情况下,会话安全令牌是绝对过期的
-
您不会使用 Cookie 来保护 Web API - 重定向对 API 没有意义(cookie 身份验证也没有意义(。