我正在尝试在asp.net核心应用程序中设置用户特定的会话超时。我已使用以下代码从Startup类的ConfigureServices中设置超时。
services.AddSession(options => options.IdleTimeout = TimeSpan.FromHours(8));
但是,这适用于应用程序的所有用户。我的要求是,如果尝试登录的用户是特殊用户,请从控制器中添加它。
您可以创建一个自定义角色并进行相应的处理。这只是为了让您了解如何设置当前会话,我建议编写一个自定义DataAttribute
或RoleProvider
来处理实际的超时。
string role=User.Identity.Name;
if (role="admin")
{
System.Web.HttpContext.Current.Session.Timeout=20; //which you want
according to user type
}
else if (role="user")
{
System.Web.HttpContext.Current.Session.Timeout=10; //which you want according to user type
}