从活动目录返回用户 ID 列表
本文关键字:用户 ID 列表 返回 活动 | 更新日期: 2023-09-27 18:17:48
创建一个名为 GetAdUsers
的方法,该方法应返回有关 Active Directory 中每个用户的一组信息(包括用户 ID(。
我已成功返回用户Email
、UserName
和DisplayName
,但无法获取用户的 ID。
如何从活动目录获取用户 ID。
我的用户模型
public class Users
{
public string Email { get; set; }
public string UserName { get; set; }
public string DisplayName { get; set; }
public bool IsMapped { get; set; }
public int UserId { get; set; }
}
我获取活动目录信息的方法
public List<Users> GetAdUsers()
{
try
{
List<Users> lstADUsers = new List<Users>();
string DomainPath = ConfigurationManager.AppSettings["...ldapPathHere..."];
// Encapsulating an object in Active Directory Domain Service - the DirectoryEntry is initializing a new instance of AD Domain Services
DirectoryEntry searchRoot = new DirectoryEntry(DomainPath);
// Searching for all users in the domain
DirectorySearcher search = new DirectorySearcher(searchRoot);
// Filtering my results
search.Filter = "(&(objectClass=user)(objectCategory=person))";
search.PropertiesToLoad.Add("samaccountname");
search.PropertiesToLoad.Add("mail");
search.PropertiesToLoad.Add("usergroup");
search.PropertiesToLoad.Add("displayname");//first name
search.PropertiesToLoad.Add("userid");
SearchResult result;
SearchResultCollection resultCol = search.FindAll();
if (resultCol != null)
{
for (int counter = 0; counter < resultCol.Count; counter++)
{
string UserNameEmailString = string.Empty;
result = resultCol[counter];
if (result.Properties.Contains("samaccountname") &&
result.Properties.Contains("mail") &&
result.Properties.Contains("displayname") &&
result.Properties.Contains("userid"))
{
Users objSurveyUsers = new Users();
objSurveyUsers.Email = (String)result.Properties["mail"][0] +
"^" + (String)result.Properties["displayname"][0];
objSurveyUsers.UserName = (String)result.Properties["samaccountname"][0];
objSurveyUsers.DisplayName = (String)result.Properties["displayname"][0];
objSurveyUsers.UserId = (int) result.Properties["userid"][0];
lstADUsers.Add(objSurveyUsers);
}
}
}
return lstADUsers;
}
catch (Exception ex)
{
throw;
}
}
我想你的意思是安全标识符或SID。这保存在objectSID
属性中。
你的意思是 samAccount 還是 samAccountName ?(我不确定哪一个是正确的(
编辑:
抱歉,下次我应该完整阅读代码 - LDAP 查询不区分大小写吗?