我正在开发一个有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
。有没有办法解决这个问题?
答案 0 :(得分:4)
为什么不将用户类型添加到其会话状态?
像这样:Session["user"] = "Strudent_" + userId;
然后解析单个会话以查找Id和用户类型:
var userType = Session["user"].ToString().split('_')[0];
var userId = Convert.ToInt32(Sessionp["user"].ToString().split('_')[1];)
但我建议使用会话状态:
如果您不想使用多个会话状态,也可以使用userId从数据库中查询用户类型。