技术防止多个login到同一台计算机

在这里再次提出这个问题,因为ServerFault的人们认为这是适当的地方 。

我试图防止多人login到一台计算机, 同时使用我的应用程序。 换句话说,我想阻止它在同一台计算机上运行两次,同时在任何给定的时间内,只有一个用户运行我的应用程序

我有理由设置严格的许可证使用。 我的应用程序服务于一个非常专业和非常利基的市场。 因此,每个拷贝花费数万。 如果这样的多重远程login技术突显,我将很快失去业务。

这是因为我想阻止他们购买一个许可证,将其安装在一台机器上,并使用某些远程桌面技术来进行多用户login。 我想阻止他们在技术上违反许可协议,而不是执法。

我如何以编程方式find我的MEGAsync文件夹?

某些应用程序停止所有获取击键的尝试

什么是在Windows应用程序的EXE本地存储数据的最佳方法是什么?

C# – closuressubprocess的inputstream

简单的C#应用​​程序无法正常工作,在Visual Studio中运行时工作正常

无论如何,我可以在我的申请呢? 或者是同时多个login是根本不可能的?

我更喜欢非encryption狗解决scheme。 我的应用程序仅在Windows上运行。

编辑:使事情进一步复杂化,我允许同时进行不同版本的访问(我的客户可以在同一台机器上安装同一软件的多个版本并同时启动)。 我只是不允许同时远程login。

vb 2008 WriteProcessMemory()返回0

如何杀死一个正在运行的程序,以及如何去捕捉它们?

WPF AutomationPeer.Initialize定期抛出NullReferenceException

我如何使用“networking服务”帐户启动控制台应用程序

Windows快速移动时改变光标

让我稍微澄清一下我的立场。 至少是丝绸般的,我似乎正在以不同的方式来解释这一点。

据我所知,你正试图阻止多个用户(或同一用户的更多的实例)在同一时间登录到机器上。 在这里,你假定机器的唯一目的是运行你的应用程序,通常不是这样的。

使用silky的方法(系统范围的互斥体)来防止多个实例在同一台机器上运行是可以接受的。 就个人而言,在采取这种方法之前,我想确保没有一个用户运行两个应用程序实例来完成任务。

另请参阅这个程序员的宠物狗 。 防止多个用户使用同一台机器属于同一类别;)

至于你的多版本问题:为你的应用程序的每个(主要?)版本选择一个唯一的系统范围的互斥体名称

具有全系统互斥体的基本示例:

static class Program { private static Mutex appMutex = new Mutex(false,"Global\MyApp 1.0"); [STAThread] static void Main() { if (!appMutex.WaitOne(0)) { MessageBox.Show("Application is already running. Have a nice day."); return; } // ... } }

Global前缀使互斥体在多个终端服务器会话上共享。 没有它,它只会阻止用户在同一个会话中运行两个实例。

您应该在权限有限的帐户上测试此方法,因为限制帐户可能无法创建此类互斥。

你想阻止它在同一台计算机上运行两次吗?

如果是这样的话,解决方案可以非常简单; 取出一个全系统的互斥或类似的方法,然后检查并确保它不存在。 你可以打开一个套接字,或者其他任何东西来实现它。

或者你想以某种方式停止一个帐户,除了安装它,运行它?

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....