C#中最簡單和最有效的方法是檢查Windows用戶帳戶名是否存在?這是在域環境中。如何檢查Windows用戶帳戶名稱是否存在於域中?
- 輸入:在[域]用戶名/ [用戶]格式(例如 「myCompany中\鮑勃」)
- 輸出:如果用戶名存在則爲真,否則爲false。
我發現this article但例子也有相關認證和操縱用戶帳戶和他們假定您已經有一個用戶專有名稱,而我開始與用戶帳戶名。
我敢肯定,我可以用AD來解決這個問題,但在我這樣做之前,我想知道是否有一個簡單的高級API可以滿足我的需求。
* UPDATE *
可能有許多方法可以做到這一點,拉斯發佈一個可以工作,但我無法弄清楚如何調整它在我的環境中工作。我沒有找到一個不同的方法,使用WinNT提供該做的工作對我來說:
public static bool UserInDomain(string username, string domain)
{
string path = String.Format("WinNT://{0}/{1},user", domain, username);
try
{
DirectoryEntry.Exists(path);
return true;
}
catch (Exception)
{
// For WinNT provider DirectoryEntry.Exists throws an exception
// instead of returning false so we need to trap it.
return false;
}
}
附: 對於那些不熟悉上面使用的API的人:您需要添加對System.DirectoryServices的引用以使用它。
我發現的鏈接幫助我:How Can I Get User Information Using ADSI 這些示例使用ADSI,但也可以應用到.NET DirectoryServices。他們還演示了可能有用的用戶對象的其他屬性。
愛新版本中,超快正是我所需要的。謝謝! – 2011-02-24 16:23:51