请帮助我理解sessiontoken到期时间的概念。
以下是我从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),则令牌的生命周期将被视为绝对值。无论用户是否处于活动状态,如果用户请求web api生成令牌10分钟后,该令牌将无效并重定向到STS登录页面。
以上概念是否正确?
答案 0 :(得分:1)
您需要自己设置令牌生存期。默认为IIRC - 10h。当令牌过期并且您正在访问受保护资源时,应用程序将发出401.如果您有WsFed模块 - 这将导致往返STS
会话安全令牌默认为绝对过期
您不会使用cookie来保护Web API - 重定向对API没有意义(也不会进行Cookie身份验证)。