簡體   English   中英

Asp.Net身份中基於角色的會話過期持續時間

[英]Role Based Session Expiring Duration in Asp.Net Identity

我的應用程序具有3種Asp.Net用戶角色。 當前,每個用戶的Cookie有效期為10天。 我可以使用以下代碼在啟動類中進行設置:

 app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString("/Home/Login"), ExpireTimeSpan = new TimeSpan(10, 1, 0, 0, 0), SlidingExpiration=true, } 

這里的問題是,此滑動到期時間將應用於系統中的所有類型的用戶。 我不知道如何根據剛剛登錄的用戶的角色來設置cookie的過期時間。

任何幫助將不勝感激。

謝謝

登錄用戶時,您可以檢查用戶的角色,並根據其角色可以分配滑動到期時間和ExpireTimeSpan的值。

只需創建如下所示的函數即可獲取這些值,並在創建身份驗證Cookie時調用它。

public AuthInfoDTO GetAuthInfo(List<string> roles)
        {
            AuthInfoDTO obj = new AuthInfoDTO();

            if (roles.Any(x => x == "Admin"))
            {
                obj.SlidingExpiration = true;
                ExpireTimeSpan = new TimeSpan(10, 1, 0, 0, 0);
            }
            else
            {
                obj.SlidingExpiration = false;
                ExpireTimeSpan = new TimeSpan(0, 1, 0, 0, 0);
            }
            return obj;
        }

還創建如下的DTO類:

 public class AuthInfoDTO
    {
        public bool SlidingExpiration { get; set; }
        public TimeSpan ExpireTimeSpan { get; set; }
    }

暫無
暫無

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

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