我的应用程序有3种类型的Asp.Net用户角色。目前,每个用户的Cookie过期时间为10天。我可以使用以下代码在Startup Class中设置它:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Home/Login"),
ExpireTimeSpan = new TimeSpan(10, 1, 0, 0, 0),
SlidingExpiration=true,
}

这里的问题是这个滑动到期时间适用于系统中的所有类型的用户。我无法弄清楚我们如何根据刚刚登录的用户的角色来设置cookie的过期时间。
非常感谢任何帮助。
由于
答案 0 :(得分:-1)
登录用户时,您可以检查用户的角色,根据他的角色,您可以指定滑动到期时间和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; }
}