如何判断计算机是否是C#中特定Windows域的一部分?

时间:2009-08-17 22:28:05

标签: c# windows authentication dns

我有一个内部C#应用程序,我想开始在外部部署。我有一些我只想让内部用户使用的功能,但我不想打扰多个版本。我也不想改变内部用户当前使用该程序的方式。

所以,我在想的是: 1)检查运行程序的PC域。如果这是我公司的域名,请打开内部功能。该程序可以在与域断开连接并脱机运行的PC上运行。

2)在其上方设置密码选项以启用内部功能。

因此,对于域计算机上的内部用户,它看起来与以往完全相同。 对于非域计算机上的内部用户,他们可以打开内部功能。 对于外部用户,他们没有获得内部功能。

在C#中实现“是域的计算机部分,即使是脱机”的最佳方法是什么?

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

Console.WriteLine(Environment.UserDomainName);

答案 2 :(得分:1)

我认为这比这更复杂,因为这很容易找到并创建一个欺骗域。

我建议在您的LDAP目录中设置一个特定值,并通过LDAP查找该值(可能需要加密才能使其更难)。这将具有您想要的优势而不会被轻易绕过。

它仍然可以被绕过,只是不那么容易。