我创建了一个Windows应用程序(C#),其中一些信息作为静态变量存储在登录表单中 - 例如用户名和用户角色存储在静态变量中。
此应用程序将在LAN服务器上运行,可由瘦客户端访问,同时多个用户将使用此应用程序。
我需要确认在这种情况下,静态变量是否像会话变量一样,就像在web基础系统中一样?或者这些静态变量混合在一起?
例如,用户A和用户B已登录。如果用户A信息同时访问同一应用程序但来自不同系统,则用户A信息是否可以与用户B信息混合?
答案 0 :(得分:3)
静态字段与AppDomain相关联。根据MSDN文档,AppDomain是:
[...]应用程序执行的隔离环境。
无论如何,我认为你根本不应该混淆AppDomains。实际上,您应该完全避免这种情况的静态字段。
而是使用自定义Session对象,该对象将为各个用户存储个人信息。当用户启动会话时创建Session实例,并在会话结束时处置/释放它。确保您不要混合属于不同用户的两个会话实例,并且您可以继续使用。
答案 1 :(得分:0)
只有1个静态变量。
如果您有一个表示客户端连接的对象;并且它是该类的静态字段,它应该被制作成一个实例字段,玩具需要每个客户端都有自己的版本;否则他们都会分享它。