1
我在c#中使用UserPrincipal類。我有一個活動目錄guid的列表。通過guid列表獲取Active Directory用戶
我將如何獲得使用此列表的DirectoryEntries的列表?
我知道如何做到這一點使用一個GUID,但不是許多GUID。
我在c#中使用UserPrincipal類。我有一個活動目錄guid的列表。通過guid列表獲取Active Directory用戶
我將如何獲得使用此列表的DirectoryEntries的列表?
我知道如何做到這一點使用一個GUID,但不是許多GUID。
你只需要遍歷你的GUID列表,獲取每個用戶:
public List<UserPrincipal> FindAllUsers(List<Guid> allGuids)
{
List<UserPrincipal> result = new List<UserPrincipal>();
// set up domain context
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain))
{
foreach(Guid userGuid in allGuids)
{
// find a user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, userGuid);
if(user != null)
{
result.Add(user);
}
}
}
return result;
}
+1注意,LDAP查詢可以是非常慢的。做好準備,並提前考慮一個好的緩存策略。 – Yuck
有沒有什麼辦法可以通過 – user1786107
@ user1786107傳遞所有的guid:你可以傳入一個**的Guid **列表到你自己的方法 - 但是沒有辦法在Active Directory中一次搜索一大堆Guid 。 –