2016-12-19 85 views
2

在我的具體情況,當用戶的許可證已過期,設置一個標誌在相關AspNetUsers表。在每個控制器調用中是否存在一個鉤子來檢查用戶是否仍然有效?

這個標誌在登錄方法檢查,如果正確的話,則SignInManager將登錄用戶。

但是我的網站,和許多人一樣,也使用的「記住我」的功能。現在我有記住客戶會話的情況,並且檢查用戶許可證是否過期的檢查不會再次檢查,直到他們下次登錄。

是否aspnet核心有一個掛鉤的地方,當在標有[Authorize]標籤的控制器中調用一個方法時,我可以執行一些額外的邏輯(如檢查過期的標誌)並在出現故障時將其註銷?

+0

爲什麼不寫你自定義的授權行動過濾器? https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/filters – Fran

+0

當標誌設置,你可以刪除該用戶的所有會話,在您的服務器。 –

+0

@Fran人說不要創建自己的授權行動過濾器(http://stackoverflow.com/questions/31464359/custom-authorizeattribute-in-asp-net-5-mvc-6)。 – Dylan

回答

0

在Startup.Auth.cs文件,您可以根據您的需要,將解決你的問題,因爲一旦牌照將到期,新生成的令牌將不匹配存儲的cookie標記設置validateInterval選項

new CookieAuthenticationProvider 
{ 
    OnValidateIdentity = SecurityStampValidator 
     .OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
     **validateInterval: TimeSpan.FromMinutes(30),** 
     regenerateIdentity: (manager, user) 
     => user.GenerateUserIdentityAsync(manager)) 
} 

欲瞭解更多請參考以下鏈接: -

[http://sftool.blogspot.in/2016/01/aspnet-identity-remember-me.html] 

感謝

相關問題