我正在使用ADFS 2.0对我的mvc 3.0网络应用进行身份验证。我将我的依赖方的TokenLifeTime设置为1440(24小时),但是当我登录后单步执行代码时,我可以看到会话令牌的ValidTo日期从现在开始仅为600分钟(10小时)。如果我将TokenLifeTime更改为小于600,则datetime与我登录时的预期相匹配。即如果我将TokenLifeTime设置为5,则会话令牌上的ValidTo日期距离我登录时为5分钟。
我还没有找到任何关于此值的最大数字的引用,但我也无法解释为什么我无法将会话令牌上的ValidTo时间增加到更长时间超过600分钟。
因此...
TokenLifeTime的最大值是600吗?
是否还有其他因素影响ADFS发布的会话令牌的ValidTo时间?
答案 0 :(得分:1)
我一直在看这个,我想我已经提出了一个有效的解决方案 - 我还没有在愤怒中使用它,所以我无法确定它没有& #39;包含任何问题!
基本上,它在created之后但在任何事情开始使用之前拦截了令牌。然后将其替换为包含原始所有基础细节但具有更长validTo
日期的标记,由validForDays
void WSFederationAuthenticationModule_SessionSecurityTokenCreated(object sender, SessionSecurityTokenCreatedEventArgs e)
{
var currentToken = e.SessionToken;
var validForDays = 1;
e.SessionToken = new SessionSecurityToken(
currentToken.ClaimsPrincipal,
currentToken.Context,
currentToken.EndpointId,
DateTime.UtcNow,
DateTime.UtcNow.AddDays(validForDays));
e.SessionToken.IsPersistent = true;
}
它存在于Global.asax.cs
中