C#

2016-03-31 7 views
2

için Active Directory grubunun kullanıcı adlarını edinin. Belirli bir Active Directory grubunun kullanıcı ayrıntılarını almam gerekir. filtresindeC#

var result = grpResponse.Entries[0]; 

if (result.Attributes["member"] != null) 
{ 
    for (var i = 0; i < result.Attributes["member"].Count; i++) 
    { 
      var filter = result.Attributes["member"][i].ToString(); 

      var query = "(&(objectClass=user)(" + filter + "))"; // Here I need username to use like cn=username 

      var userRequest = new SearchRequest(distinguishedName, query, 
            SearchScope.Subtree); 

Ben

CN=Name,OU=something,DC=example 

nasıl yalnız bu cn değeri yani kullanıcı adını alabilir gibi bir şey alıyorum: Bu kodu kullanıyorum?

cevap

1

.NET 3.5 ve üstü sürümleri kullanıyorsanız, System.DirectoryServices.AccountManagement (S.DS.AM) ad alanını gözden geçirmelisiniz.

// set up domain context - limit to the OU you're interested in 
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, null, "OU=YourOU,DC=YourCompany,DC=Com")) 
{ 
    // find the group in question 
    GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "YourGroupNameHere"); 

    // if found.... 
    if (group != null) 
    { 
     // iterate over the group's members 
     foreach (Principal p in group.GetMembers()) 
     { 
      Console.WriteLine("{0}: {1}", p.StructuralObjectClass, p.DisplayName); 

      // do whatever else you need to do to those members 
     } 
    } 
} 

yeni S.DS.AM gerçekten kolay AD kullanıcıların ve grupların uğraşmak yapar: Temelde

, sen AD kullanıcıları ve/veya grupları bulmak kolay etki alanı bağlamını tanımlayabilir ve !

burada bu konuda daha fazla bilgi:

0

aşağıda tam olarak ne gerekli olduğunu.

olabilecek bizimki gibi kullanmak OuString birden bölümden oluşur - her ikisi OU & DC

bstring OUString = "OU=Groups,OU=Accounts,DC=nw,DC=nos,DC=ourcompanyName,DC=com" ; 

using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, null, OUString))