【发布时间】:2012-01-24 21:56:52
【问题描述】:
我正在使用 VS2010,C# 开发一个自动化站点(ASP.NET Web 应用程序),它可能同时拥有数百个用户。我几乎完成了网站的创建,但我知道我犯了一些错误,其中一个是在代码隐藏页面上使用公共静态变量,而不是为每个用户使用会话,现在当用户 A 更改页面中的设置时,用户 B也以与用户 A 查看页面完全相同的方式查看页面!而不是在默认状态下查看页面。我有个问题: 我应该在哪里为每个用户声明我的会话?当用户登录时,我为每个用户创建一个会话,这是我迄今为止使用的唯一会话:
Session.Add("userid" + myReader["ID"].ToString(), "true");
我应该在这里创建其他必要的会话吗?即在登录时?例如,我在负责查看数据库的页面上声明了一些公共静态变量:
public static string provinceid = "0";//0 means all
public static string branchid = "0";
public static string levelid = "0";
public static string groupid = "0";
public static string phrase = "";
我应该在登录时为他们每个人声明一个会话吗?或者我可以在每个页面启动时声明它们吗?
谢谢
【问题讨论】:
-
您不应该将实际的 UserID-Value 添加到 Session-Key,因为会话已经是用户独立的。例如:
Session.Add("UserID", myReader["ID"].ToString());