2015-03-02 72 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

相關問題