微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

技术防止多个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前缀使互斥体在多个终端服务器会话上共享。 没有它,它只会阻止用户在同一个会话中运行两个实例。

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐