如何保证脱机时计算机已加入到特定域?

| 因此,过去我总是在工作网络内部开发Windows窗体客户端软件,我们一直遵循着这样的懒惰规则:现场不允许使用外部硬件,没有人可以篡改硬件,因此软件总是要在网络中运行所有这些都加入了,这使我可以将上下文延迟设置如下:
WindowsPrincipal wp = new WindowsPrincipal(WindowsIdentity.GetCurrent());
Thread.CurrentPrincipal = wp;
因此,现在我被要求编写一个将在销售笔记本电脑上运行的应用程序。我无法100%保证他们不会使用该软件并在家用PC上运行并将其“假装加入”网络。我知道我可以检测到它们可能加入的网络名称,但是保证该网络实际上是我们的网络的正确方法是什么?我可以在应用程序本身中嵌入某种指纹来确定网络是否是我们的工作网络吗?
已邀请:
天哪,这就是您的意思。头在我家遇见桌子。 您需要的是许可证服务器。您显然是在描述公司许可证的情况!您的网络中是否有MSSQL-Server? 创建一个类似your_program_nameLCU的用户(许可证检查用户) 创建一个用户具有读取权限的数据库 针对无法访问数据库的情况创建Try-Catch 显然他不在您的网络中,因此请关闭该程序! 除此之外: 与VPN搭配使用效果非常好!而且我想这也是需要的!
如果仅是基本网络名称检查,则可以只使用包含DOMAIN \\ username的身份名称(
WindowsIdentity.GetCurrent().Name
)。一旦有了足够的方法来拆分strnig并检索DOMAIN名称(请参阅内置帮助程序,将User.Identity.Name解析为Domain \\ Username)。 正如wegginho在评论中提到的那样,尽管理论上有人可以将其网络名称设置为同一网络。

要回复问题请先登录注册