回答
一種方式是查詢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