我有一个使用ASP.Net MVC 5的Intranet应用程序
我需要查询所有Active Directory用户的用户名
我在网上搜索了我发现的2个有用的帖子: 1- How can I get a list of users from active directory?
2- http://www.codeproject.com/Tips/599697/Get-list-of-Active-Directory-users-in-Csharp
当我查询时,我可以获取Name属性,但我无法获取活动目录用户名
我可以获得所有Active Directory用户用户名的任何解决方案吗?
贝洛是我的代码:
List<TempUsers> MyTempUser = new List<TempUsers>();
var context = new PrincipalContext(ContextType.Domain, "MyDomain.com");
var searcher = new PrincipalSearcher(new UserPrincipal(context));
foreach (var result in searcher.FindAll())
{
DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry;
MyTempUser.Add(new TempUsers { UserName = de.Properties["Name"].Value.ToString() });
}
答案 0 :(得分:0)
您要查找的媒体资源名称为sAMAccountName
。
Here's可用属性列表。
答案 1 :(得分:0)
我这样做的方式非常好:
1-添加对Active Directory服务DLL的引用
2-在控制器中添加:
using System.DirectoryServices.AccountManagement;
比我创建了一个将所有Active Directory用户存储在数据库表中的函数 bellow是代码希望帮助某人需要它。
public ActionResult Create()
{
List<MyADUsers> TheAllADUsers = new List<MyADUsers>();
var context = new PrincipalContext(ContextType.Domain, "MyDoman.org");
var searcher = new PrincipalSearcher(new UserPrincipal(context));
foreach (var result in searcher.FindAll())
{
TheAllADUsers.Add(new MyADUsers { ADUserName = result.SamAccountName, AD_IsMemberOf = result.UserPrincipalName, FullName = result.Name });
}
db.MyADUsersContext.AddRange(TheAllADUsers);
db.SaveChanges();
return View();
}