2015-03-02 84 views
2

我知道这并没有多大意义,但我的客户请求让令牌永不过期。ASP.NET身份使电子邮件/密码令牌永不过期

我做了一些研究,发现我可以指定时长为TokenLifespan,所以我首先想到的是让时间超长从而使令牌似乎是“永不过期”

var dataProtectionProvider = options.DataProtectionProvider; 
     if (dataProtectionProvider != null) 
     { 
      manager.UserTokenProvider = 
       new DataProtectorTokenProvider<ApplicationUser>(dataProtectionProvider.Create("ASP.NET Identity")) 
       { 
        TokenLifespan = TimeSpan.FromHours(2160) 
       }; 
     } 

然而,无论我为TokenLifespan设置了什么,该令牌仍将在3天后过期。

我做了一个测试,说1天或2天,他们工作得很好,但由于某些原因,它不能超过3天。到底发生了什么?

+0

如果用户的安全邮票变化,它会令牌无效的。你有没有证实这没有发生? – Shoe 2015-03-02 15:55:57

+0

我没有真正验证它,但它不应该改变。我在星期五和周末生成了令牌,没有人触及系统(我有测试环境) – 2015-03-02 16:01:44

回答

-1

采取这里http://www.codeproject.com/Articles/762428/ASP-NET-MVC-and-Identity-Understanding-the-Basics

一看你不应该做记号持久,你应该定义在登录部分

AuthenticationManager.SignIn(
      new AuthenticationProperties { IsPersistent = isPersistent }, 
      userIdentity, 
      rememberBrowserIdentity); 
+0

您能否请进一步解释?你是什​​么意思,“不应该让令牌持久”? – 2015-03-02 15:35:44

+0

@ C.J。看看我提供的链接。 当您调用“AuthenticationManager.SignIn” – 2015-03-02 15:37:47

+0

时,您不必使dataProtectionProvider令牌持久化,您可以添加IsPersistent属性。对不起,我仍然非常困惑,“SignIn”与PasswordResetToken有什么关系? – 2015-03-02 15:51:03

相关问题