web.config中的会话状态

时间:2011-04-05 04:57:04

标签: c# asp.net web-config

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

为了避免多次登录同一个用户,我在表格中使用了一个登录栏,登录后会变为1,登出后会变为0。我已经使用会话状态来注销用户,如果他关闭浏览器窗口而不退出。

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

Global.asax:

void Session_End(object sender, EventArgs e) 
{
        int sid = Convert.ToInt32(Session["student"]);
        candidate.signoutUser(sid);
}

但是有三种用户。我无法添加多个sessionState。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:4)

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

像这样:

Session["user"] = "Strudent_" + userId;

然后解析单个会话以查找Id和用户类型:

var userType = Session["user"].ToString().split('_')[0];
var userId = Convert.ToInt32(Sessionp["user"].ToString().split('_')[1];)

但我建议使用会话状态:

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

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