2013-01-13 93 views

回答

6

你可以嘗試下面的東西。

using ActiveDs; 
using BdsSoft.DirectoryServices.Linq; 
using System.Linq.Expressions; 
using System.DirectoryServices; 

[DirectorySchema("user", typeof(IADsUser))] 
class User 
{ 
    public string Name { get; set; } 

    public string sAMAccountName { get; set; } 

    public string objectCategory { get; set; } 

    public string mail { get; set; } 

    public string Description { get; set; } 

    [DirectoryAttribute("PasswordLastChanged", DirectoryAttributeType.ActiveDs)] 
    public DateTime PasswordLastSet { get; set; } 

    [DirectoryAttribute("distinguishedName")] 
    public string Dn { get; set; } 

    [DirectoryAttribute("memberOf")] 
    public string[] Groups { get; set; } 

} 

使用此代碼從一個控制檯應用程序訪問廣告,讓廣告服務器在下面的代碼:

static void Main(string[] args) 
{ 

    IEnumerable<User> users = GetADUsers(); 

    Console.WriteLine("Users: " + users.Count().ToString()); 

} 

static DirectoryEntry ROOT = new DirectoryEntry("LDAP://MyADDomainLocation.com"); 

private static IEnumerable<User> GetADUsers() 
{ 
    IEnumerable<User> users; 

    var usersDS = new DirectorySource<User>(ROOT, SearchScope.Subtree); 

      users = from usr in usersDS 
        where usr.Name == "A*" // FIlter A then any character(s) 
        select usr; 

    users = users.OrderBy(user => user.Name).ToList(); // Sort them alphabetically by name. 

    return users; 
} 

欲瞭解更多信息,請查看Get All Users using C# with Linq To Active Directory

LINQ to LDAP

對於獲得有關此主題檢查的全面知識(Almost) Everything In Active Directory via C#

我希望這對你有幫助。

+0

非常感謝我的朋友,這很好,我還有一個問題:你的代碼在AD服務器上運行,我可以在另一臺計算機(加入域的計算機)上運行這個應用程序在這種情況下,LDAP地址是什麼? –

+0

@SirwanAfifi很高興聽到它的幫助。對於你的問題,你可以參考這篇文章http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C – Sampath

+0

@Sampath你會推薦使用LINQ到LDAP嗎? –

相關問題