2016-02-22 85 views
2

因此,我使用ASP.NET MVC項目提供的個人身份驗證的默認實現一切正常,除了記住我的功能,我注意到經過一段時間記住我的時間不再起作用。
我已經在堆棧溢出的所有問題,並嘗試瞭解決方案,但沒有任何工作到目前爲止。我也注意到,這個問題已經被版本2中的身份認證的人所修復,以及我在2.2.1版本的默認安裝中。
有什麼我想改變做這項工作?我不知道還有什麼嘗試ASP.NET身份2記住我不按預期工作

+0

您應該鏈接或引用其他解決方案,你沒有成功嘗試,對我們來說,不要徒勞地提出同樣的解決方案。 –

回答

0

在你Startup.Auth.cs文件從30分鐘更改默認validateInterval值爲0

app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
      LoginPath = new PathString("/Account/Login"), 
      Provider = new CookieAuthenticationProvider 
      {     

       OnValidateIdentity = SecurityStampValidator 
      .OnValidateIdentity<ApplicationUserManager, ApplicationUser, int>(
       validateInterval: TimeSpan.FromMinutes(0), 
       regenerateIdentityCallback: (manager, user) => 
        user.GenerateUserIdentityAsync(manager), 
       getUserIdCallback: (id) => (id.GetUserId<int>())) 
      } 
     }); 
+1

也許增加更多的解釋會有所幫助。底線:默認情況下,票證超時時間很短,'記住我'不會更改超時時間,它只會導致瀏覽器在關閉/重新打開時不刷新票證。需要放置更長或「永不過期」的超時。缺點:超時適用於兩種用例,'記住'和'不記得'。忘記關閉瀏覽器/會話雖然沒有勾選'記住'的粗心的用戶不會因爲短暫的超時而'保存'。對於auth系統來說,這是一個很大的缺陷。 –

+0

@Frédéric這個解釋很有道理,謝謝,我的項目不需要非常安全(除了電子郵件之外沒有敏感信息),因此我認爲這個解決方案將工作得很好。記住我的工作比在一段時間內沒有用戶註銷時更重要 – Toxicable