ADFS TokenLifeTime最大?

时间:2013-09-27 20:04:51

标签: c# asp.net-mvc adfs2.0 federated-identity

我正在使用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时间?

1 个答案:

答案 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