1
假設活動目錄設置正確,我試圖找到一種方法來確定兩個人是否來自同一位置。我能夠繞過它的唯一方法是找到一種方法來確定他們的目錄條目是否位於同一個OU中。所以目前,這是我現在吐口水:如何確定兩個人是否來自活動目錄中的相同位置
private bool ComparePeople()
{
var user1Guid = "aaa";
var user2Guid = "bbb";
var expr = @"CN=.*?,";
var user1OU = Regex.Replace(GetUserDN(user1Guid), expr, string.Empty);
var user2OU = Regex.Replace(GetUserDN(user2Guid), expr, string.Empty);
return user1OU == user2OU;
}
private string GetUserDN(string userGuid)
{
using(var entry = new DirectoryEntry(string.format("LDAP://<GUID={0}>", userGuid)))
{
using(var search = new DirectorySearcher(entry))
{
search.PropertiesToAdd.Add("distinguishedName");
var result = search.FindOne().GetDirectoryEntry();
if(result != null && result.Properties["distinguishedName"].Count > 0)
{
return result.Properties["distinguishedName"].Value.ToString();
}
else return "";
}
}
}
我還沒有測試過,但我覺得它會工作。它基本上找到一個用戶的可分辨名稱,給他們的Guid。然後,它從DN中刪除CN,從本質上找到該用戶的目錄項/ OU的路徑。然而,這似乎有點複雜。有沒有人有任何意見或建議來簡化這個?
啊哈,我不知道父母的財產。所以這是一個問題。在最近的過程中,我與AccountManagement命名空間運氣不佳。似乎所有事情都得到了明顯緩慢的處理。這是正常的,還是你認爲這是一種僥倖?無論哪種方式,看來我真的需要做的就是拉出目錄條目並比較父母嗎? – Sinaesthetic