簡體   English   中英

ASP.NET核心身份3 Cookie超時

[英]ASP.NET Core Identity 3 Cookie timeout

RC2發生了一個奇怪的問題。

我使用以下配置選項將Identity 3 ExpireTimeSpan設置為12小時

options.Cookies.ApplicationCookie.ExpireTimeSpan = new TimeSpan(12,0,0);

登錄到網站並保持不變約35-40分鍾后,我收到401錯誤(對於我的ajax郵件調用)並刷新網站,我回到登錄頁面。

當我將ExpireTimeSpan設置為12小時時,為什么必須重新進行身份驗證?

我需要其他設置或配置嗎?

也,

如何在到期前留出時間? 我想訪問該信息,以便我可以警告我的用戶他們的會話將在X時間后過期。

謝謝!

我發現了這個問題

問題在於SecurityStamp機制。 默認情況下,每隔30分鍾驗證一次安全標記。 這主要是因為在任何地方簽到都是一種選擇。 例如,當用戶更改密碼時,安全標記通常以身份更新。 這將使用戶已登錄的所有位置(除非他更改密碼的位置)在30分鍾后退出,因為郵票(通常是guid)已更改。

要實現此功能,請在ISecurityStampStore<T>實現ISecurityStampStore<T>接口並實現GetSecurityStampAsync(User user, CancellationToken cancellationToken)方法

有關詳細信息,您可以查看安全標記驗證碼以及30分鍾后簽署的原因

https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNetCore.Identity/SecurityStampValidator.cs

注意:options.SecurityStampValidationInterval可以設置為增加時間檢查,但不能解決問題。 在X時間之后,您仍然會退出。

暫無
暫無

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

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