如何在asp.net核心中设置用户特定的会话超时

问题描述 投票:0回答:1

我正在尝试在asp.net核心应用程序中设置用户特定的会话超时。我已使用以下代码从Startup类的ConfigureServices中设置超时。

services.AddSession(options => options.IdleTimeout = TimeSpan.FromHours(8));

但是,这适用于应用程序的所有用户。我的要求是,如果尝试登录的用户是特殊用户,请从控制器中添加它。

c# asp.net-core session session-timeout
1个回答
0
投票

您可以创建一个自定义角色并进行相应的处理。这只是为了让您了解如何设置当前会话,我建议编写一个自定义DataAttributeRoleProvider来处理实际的超时。

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
 } 
© www.soinside.com 2019 - 2024. All rights reserved.