ASP.NET多用户操作相同互斥的对象

[一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/3574154.html ] 

现象:公有静态变量不可用于ASP.NET多用户操作,否则该变量会被多用户改写,导致错误。参考: http://blog.csdn.net/dobly/article/details/54826

解决:可以使用public static Dictionary<key,value>来实现多用户互斥操作。其中key存放唯一的用户登录ID,value存放数据内容。

e.g.

Global.aspx.cs:

 1 public static class Global

 2 {

 3     public static Dictionary<int, string> DataChangesTempXML;

 4     public static void InitDic()

 5     {

 6             //当用户登录的时候添加用户字典

 7             if (DataChangesTempXML == null)

 8                 DataChangesTempXML = new Dictionary<int, string>();         

 9             if (!DataChangesTempXML.ContainsKey(PlatBaseUserTBO.LoginInfo.UserID))

10                 DataChangesTempXML.Add(PlatBaseUserTBO.LoginInfo.UserID, "");    

11     }

12 }

Login.aspx.cs:

 

1 Global.InitDic();

 

xx.aspx.cs:

1 //对字典赋值

2 Global.DataChangesTempXML[PlatBaseUserTBO.LoginInfo.UserID] = id;

3 //获取字典对象

4 m_DataChangesTempTEN.Changesxml = Global.DataChangesTempXML[PlatBaseUserTBO.LoginInfo.UserID];

 

 

你可能感兴趣的:(asp.net)