当应用程序(桌面c#)在局域网上配置时,如何处理静态变量
本文关键字:何处理 处理 变量 静态 桌面 应用程序 局域网 配置 | 更新日期: 2023-09-27 18:11:29
我构建了一个用于考勤的c#桌面应用程序
应用程序工作正常,当我在单机上运行时,一切都很好。
但现在的问题是…我的老板希望这个应用程序应该在局域网工作,每个客户端都可以从服务器访问应用程序
但是我使用静态变量在运行时存储一些值,然后我在下一个表单中使用这些值。
这里有一个例子…
登录表单上的用户名存储为静态变量
public static string username;
username = txtUser.Text.Trim().ToString();
,下一种形式是Home Page
,这个用户名被用作
lblName.Text = Login.username;
这里lblName
为标签名称,Login
为登录表单名称
当我在LAN上配置此应用程序时,可能同时有多个用户将登录并希望访问应用程序,然后每个用户应该看到他/她自己的用户名....
e-g abc
为用户1,xyz
为用户2
如果两者同时登录,那么我希望abc
看到
lblName.Text = "abc"
和xyz查看
lblName.Text = "xyz"
那么我该怎么做才能胜任这份工作呢?
我不需要混淆用户之间的任何信息…
我使用c# Windows应用程序。
我假设您在服务器端使用静态变量,对吗?
所以,你的问题发生是因为你使用了静态变量。
在应用程序运行的所有期间,静态变量在类中是一致的。并且该字段在所有可以使用该类的进程之间共享。静态变量就是为此而设计的。作为一个可能的快速解决方案,您可以生成像唯一会话Id这样的东西。在客户端登录到您的系统时-您只需要在客户端生成该id,将其与登录信息一起发送到服务器。如果身份验证成功,服务器将在缓存中存储id的一个键。并且缓存的值可以是带有用户名和其他需要的对象。
对服务器的每个请求都应该后跟该id。所以你的服务器总是知道它是哪个用户。
如果您需要更详细的答案,请提供有关应用程序网络结构及其模块的更多信息