Sir*_*ifi 1 c# linq active-directory winforms
我想使用LINQ to LDAP访问ActiveDirectory,我想获取所有用户的列表,
我该怎么做?
你可以试试下面的东西.
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; }
}
Run Code Online (Sandbox Code Playgroud)
使用此代码从控制台应用程序访问AD,将AD服务器放在以下代码中:
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;
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请选中使用C#和Linq到Active Directory获取所有用户
对于.NET Core或Standard,请参阅下面的Chris D的回答.
要获得有关此主题的全面知识,请检查(几乎)通过C#在Active Directory中的所有内容
我希望这会对你有所帮助.
| 归档时间: |
|
| 查看次数: |
8058 次 |
| 最近记录: |