![](/img/trans.png)
[英]asp.net Identity user session not expiring using authenticationProperties
[英]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.