2016-11-21 249 views
1

我想退出,我改變(刪除,添加或刪除角色,更改密碼等)用戶的所有活動會話註銷用戶。如何在ASP.NET核心身份

我找到了老版本的ASP .NET的解決方案。基本上調用UserManager.UpdateSecurityStampAsync(userId);,但這似乎不適用於ASP .NET Core。我可以調用這個函數,但它什麼都不做。之後用戶仍然登錄。

那麼,如何在地球上可以註銷登錄的用戶(所有打開的會話)?

回答

1

有一個IdentityOptions的屬性,名爲SecurityStampValidationInterval,它設置cookie被驗證的頻率。默認設置爲30分鐘。你可以改變:

services.Configure<IdentityOptions>(options => 
{ 
    options.SecurityStampValidationInterval = TimeSpan.FromSeconds(0);    
}); 
+0

非常感謝你,這完美的作品。使用如此低的價值時是否存在性能損失?將此屬性設置爲1刻度時,實際驗證的印章在什麼時候? (每次請求我只能猜到一次)。 – FSMaxB

+0

@FSMaxB是的。每個來自用戶的每個HTTP請求的數據庫額外請求。 – tmg

+0

那麼真的沒有其他辦法可以使用戶cookie失效嗎?我們無法更改該用戶cookie的數據保護密鑰或做一些使內存中的cookie無效的內容? 設置郵票驗證時間間隔看起來像是一種解決方法,並且首先破壞了將這種風格的身份的目的。 – Ryan