2012-12-09 63 views

回答

4

由於.NET 3.5及更高版本,您應該檢查System.DirectoryServices.AccountManagement(S.DS.AM)命名空間。在這裏閱讀全部內容:

基本上,你可以定義域範圍內,並可以輕鬆地查找用戶和/或組AD:

// set up domain context 
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain)) 
{ 
    // find a user 
    UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName"); 

    if(user != null) 
    { 
     // do something here....  
     string homeDrive = user.HomeDrive; 
     string homeDirectory = user.HomeDirectory; 
    } 
} 

如果您在ASP.NET MVC應用程序中使用Windows身份驗證,您還可以像這樣獲取當前登錄的用戶:

UserPrincipal currentUser = UserPrincipal.Current; 

但更多的,往往不是在一個Web應用程序,這是一樣的東西NETWORK SERVICEIUSER_machineName用戶(而不是你在瀏覽器用戶)...

新S.DS.AM品牌在AD中與用戶和羣體玩耍真的很容易!

+0

這將工作。 :) +1 – kbvishnu

+1

夢幻般的答案隊友!這實際上是我想要的,我之前發現的所有結果都是將AD作爲LDAP進行查詢。這是最好的。將嘗試一下。順便說一句,你會建議,哪種方式比使用sid的搜索LDAP更快? SecurityIdentifier sid = windowsId.User;使用(DirectoryEntry userDe = new DirectoryEntry(「LDAP:// 」))使用 – anIBMer

相關問題