C# web.config中的会话状态

C# web.config中的会话状态,c#,asp.net,web-config,C#,Asp.net,Web Config,我正在开发一个有3种用户的web应用程序 为了避免同一用户多次登录,我在表中使用了一个signin列,该列在登录后将变为1,在注销后变为0。如果用户在未注销的情况下关闭浏览器窗口,我已使用会话状态注销用户 <system.web> <sessionState mode="InProc" timeout="15" cookieName="student"/> 但是有三种类型的用户。我无法添加多个会话状态。有没有办法解决这个问题 为什么不将用户类型添加到其

我正在开发一个有3种用户的web应用程序

为了避免同一用户多次登录,我在表中使用了一个signin列,该列在登录后将变为1,在注销后变为0。如果用户在未注销的情况下关闭浏览器窗口,我已使用会话状态注销用户

<system.web>       
  <sessionState mode="InProc" timeout="15" cookieName="student"/>

但是有三种类型的用户。我无法添加多个
会话状态
。有没有办法解决这个问题

为什么不将用户类型添加到其会话状态

像这样:

Session["user"] = "Strudent_" + userId;
然后分析单个会话以查找Id和用户类型:

var userType = Session["user"].ToString().split('_')[0];
var userId = Convert.ToInt32(Sessionp["user"].ToString().split('_')[1];)
但我建议对会话状态使用:

  • 一个用于userId
  • 一个用于userType

如果您不想同时使用多个会话状态,也可以使用userId从数据库中查询用户类型。

我不明白3种类型与用户(角色)和多个会话状态之间的关系有三种类型的用户。行政、教员和学生。我想避免所有人都多次登录。我使用上面提到的方法来避免学生的多次登录,这将起作用。泰。是否有方法添加多个会话状态。我收到一个错误,上面写着“错误73节在每个配置文件中只能出现一次。请参阅帮助主题了解异常情况。”不,您的webconfig中应该只有一个sessionState标记。只需使用一个并从SessionState标记中删除cookieName=“student”。
var userType = Session["user"].ToString().split('_')[0];
var userId = Convert.ToInt32(Sessionp["user"].ToString().split('_')[1];)