防止服务器中的多个实例用户名相同
我开发了一个托管在一台服务器上的应用程序。 许多用户通过远程桌面连接访问它,但有时我在任务管理器中看到同一用户已打开2-x实例。 我需要防止同一个用户无法打开多个实例。 但请注意,程序可以由不同的用户多次打开。 请原谅我的英语。 谢谢。
PS:我正在使用Winforms和C#
您可以使用用户名创建互斥锁。
bool b = true; Mutex mutex = new Mutex(true, Environment.UserName.ToLowerInvariant() , out b); if (!b) throw new InvalidOperationException("Another instance is running");
查看应用程序的另一个实例是否已在运行的推荐方法是使用互斥锁。 见这里的例子。
由于您希望在不同用户运行应用程序时允许运行多个应用程序实例,因此只需将当前用户名添加到互斥锁的名称即可。 例如,调用Mutex "MyApp"+Environment.UserName
- 从RSACryptoServiceProvider创建X509Certificate2失败,无法找到请求的对象
- 如何序列化类实现了两个具有相同基础接口的接口
- 如何为.net控制台应用添加字体颜色?
- 使用NLog将Logger Name转换为Excel文件
- 模拟在Powershell中使用WindowsIdentity抛出FileNotFoundException
- 解码Azure移动服务JWT令牌时出现JwtSecurityTokenexception
- 为什么没有参数没有IsNullOrEmpty重载方法?
- 没有用于ASP.NET MVC的DI容器的控制器的构造函数参数
- 在不使用WCF中的CallBack的情况下将数据推送到客户端