回答
一种方式是查询LOGONSERVER环境变量。这将给你的AD控制器的服务器名称......据我所知,如果它当前没有登录到域,它将是空白的(或匹配当前的工作站?不确定)。
实例应用:
string ADServer = Environment.GetEnvironmentVariable("LOGONSERVER");
尝试让Environment.UserDomainName并将其与Environment.MachineName。如果两者相同,那么用户可能没有域名。如果它们不相同,则用户登录到必须具有目录服务器的域。
从http://msdn.microsoft.com/en-us/library/system.directoryservices.directoryentry.path.aspx
要使用LDAP绑定到当前域,使用路径“LDAP:// RootDSE的”,然后得到默认命名上下文和重新绑定条目。
因此,如果没有域,绑定到“LDAP:// RootDSE”应该失败或不返回任何内容。我没有为自己尝试。
use System.DirectoryServices; // add reference to system.directoryservices.dll
...
DirectoryEntry ent = new DirectoryEntry("LDAP://RootDSE");
String str = ent.Properties["defaultNamingContext"][0];
DirectoryEntry domain = new DirectoryEntry("LDAP://" + str);
这绝对是检查不是依赖于环境变量(用户可以删除或添加欺骗程序)的Active Directory的更清洁的方式。
+1 This works,thank you。唯一的问题是,当机器不是域成员时,它会在抛出COMException之前等待大约5秒钟。因此,最好先调用Domain.GetComputerDomain()或IPGlobalProperties.GetIPGlobalProperties()。DomainName,如果成功,则执行此操作。 – EMP 2012-05-26 09:19:26
此代码将检查计算机本身就是一个域
using System.DirectoryServices.ActiveDirectory;
bool isDomain = false;
try
{
Domain.GetComputerDomain();
isDomain = true;
}
catch (ActiveDirectoryObjectNotFoundException)
{
}
但是计算机可以在一个域的成员,但在当前登录的用户可以是本地用户帐户。如果要检查这个使用Domain.GetCurrentDomain()
功能
我发现一些作品:
使用System.Net.NetworkInformation;
IPGlobalProperties.GetIPGlobalProperties()。DomainName;
适用于本地用户和域用户。
- 1. 如何检测我是否在AWS Lambda环境中运行?
- 2. 如何设置Active Directory环境测试?
- 3. 如何检测是我的程序集在WP7/WP8环境中运行?
- 4. Active Directory开发环境
- 5. File.Exists在Active Directory环境中返回False
- 6. 如何检查Active Directory组是否是另一个Active Directory组的成员
- 7. 如何检测Clojure运行时环境?
- 8. 我如何知道我是否在网络环境中运行?
- 9. 检测.NET应用程序是在Azure还是在非Azure环境中运行
- 10. 在VM环境中运行应用程序时检测
- 11. 如何确定一台机器是否正在运行Active Directory
- 12. 检测是否在Facebook环境中
- 13. 如何使用VB.Net检索Active Directory环境和会话信息
- 14. 检测用户是否必须重置密码在Active Directory中
- 15. 在开发/测试环境中模拟Active Directory登录
- 16. 如何检测程序是否在PAR档案中运行?
- 17. 如何检测程序是否在valgrind中运行?
- 18. 如何检测我的应用程序是否正在运行EarlGrey测试?
- 19. 检测我是否在SharePoint中运行
- 20. 检测我的应用程序是否在电话上运行
- 21. 了解应用程序是否正在测试环境中运行
- 22. 如何检查Active Directory服务器是否启动并使用.Net运行?
- 23. 检测Active Directory用户帐户是否在Python中使用LDAP进行锁定
- 24. android如何检测应用程序是否在过去运行
- 25. 如何检测应用程序是否正在运行Cloud9?
- 26. 如何在测试环境下运行web应用程序
- 27. Rails 3:如何检测应用程序是否在服务器模式下运行多个不同的环境?
- 28. Active Directory检查用户是否登录
- 29. 如何检查您是否在.NET中的中信任环境中运行?
- 30. 如何检查某人是否正在运行我的程序?
如果电脑不是任何域的一部分,它也将是一个机器名称 – 2011-08-26 16:31:46