簡體   English   中英

如何去除cookies asp.net core 授權

[英]How to remove cookies asp.net core authorization

如果我刪除具有基於 cookie 的授權的用戶,在他按下注銷按鈕之前,該用戶仍然可以訪問系統。 或者直到 cookie 過期。

如何解決這種情況。

這是刪除用戶訪問權限時基於聲明的身份驗證的普遍問題。 由於它的設計方式,並不是每次請求都訪問數據庫來驗證訪問。 相反,加密簽名的 cookie 被認為是真實的來源。 因此,當數據庫中的訪問權限被刪除時,cookie 仍然有效,在這種情況下如何更新用戶的 cookie 並非易事。 由於它是存儲在客戶端的 cookie,您也不能只是遠程注銷用戶。

但是 ASP.NET Core Identity 中有一種機制可以強制 cookie 身份驗證方案以特定時間間隔重新驗證身份。 您可以在StartupConfigureServices方法中這樣ConfigureServices

services.Configure<SecurityStampValidatorOptions>(options =>
{
     options.ValidationInterval = TimeSpan.FromMinutes(10);
});

這會將間隔設置為 10 分鍾。 因此,每隔 10 分鍾,將驗證使用現有 cookie 訪問您網站的用戶,並發布新的 cookie。 這個過程是完全無聲的,發生在幕后。

根據您要強制執行此操作的嚴格程度,您必須進一步降低此間隔。 我通常會建議您將其保留一段時間。 否則,您就違背了緩存身份的目的。

您還應該考慮如果用戶仍然可以訪問您的網站,這真的有多大問題,以及刪除用戶的時間有多重要。 根據您的應用程序,您無論如何也不太可能在關鍵操作中檢索用戶實體,因此在這種情況下這將自動失敗,而您不必通過刪除 cookie 來拒絕訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM