声明身份验证 - 设置超时

时间:2015-09-13 10:23:30

标签: asp.net-mvc-5 claims-based-identity

我已经用尽谷歌寻找解决方案了,我声称我的应用程序中集成的身份验证都按预期工作。

我遇到的问题是,如果用户没有点击退出,他们将保持登录状态,声明我可以设置超时吗?比如用户登录后会在60分钟内自动登出?

这是我配置CLaims身份验证的方式,与您提供的代码示例不同:

 var userCredentials = new[]
        {
            new Claim("UserId", userProfile.UserId.ToString()),
            new Claim("Username", userProfile.UserName)
        };

        var id = new ClaimsIdentity(userCredentials, "Forms");

        var cp = new ClaimsPrincipal(id);
        var token = new SessionSecurityToken(cp);

        var sam = FederatedAuthentication.SessionAuthenticationModule;
        sam.WriteSessionTokenToCookie(token);

更新

好的,所以在被告知时间跨度后,我将其添加到我的SessionSecurityToken,它的时间跨度为十分钟,如下所示:

  var token = new SessionSecurityToken(cp, TimeSpan.FromMinutes(10))

然而,当我调试它时,它显示了一个完全不同的时间到我期望的,目前我在晚上20:42(澳大利亚,墨尔本)但是当我看到有效的来自/有效的SessionSecurityToken是显示如

ValidFrom = {14/09/2015 10:42:49} ValidTo = {14/09/2015 10:52:49}

我不确定为什么?

这就是我配置中的内容:

<system.identityModel>
<identityConfiguration>
  <securityTokenHandlers>
    <add type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel">
      <sessionTokenRequirement lifetime="00:10:00" />
    </add>
  </securityTokenHandlers>
</identityConfiguration>

0 个答案:

没有答案