1
我在程序中有這段代碼來查詢Windows域用戶屬於哪個組。有時候C#LDAP查詢失敗
public void GetGroupNames(string userName, List<string> result)
{
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain))
{
UserPrincipal uPrincipal = UserPrincipal.FindByIdentity(pc, userName);
if (uPrincipal != null)
{
PrincipalSearchResult<Principal> srcList = uPrincipal.GetGroups();
foreach (Principal item in srcList)
{
result.Add(item.ToString());
}
}
}
}
當我剛剛實現了它,並調試它,
UserPrincipal uPrincipal = UserPrincipal.FindByIdentity(pc, userName);
總是得到空。 然後,我不得不關閉視覺工作室做其他事情。當我回來時,打開了visual studio,這段代碼剛剛工作。幾天前,該組織出現網絡問題,在此期間我沒有關閉電腦。在網絡恢復正常後,我可以連接到互聯網,我可以將桌面遠程連接到服務器等,這證明活動目錄認證已經完成,但上面的一段代碼未能找到給定名稱的UserPrinical,例如。我自己的。然後我重新啓動電腦,代碼工作正常。我對這件事感到很困惑。有沒有人能夠爲此提供一個很好的解釋?
此故障仍在發生嗎?如果你現在在哪裏嘗試,你會得到一個錯誤? – Derek
@Derek不,這個錯誤沒有再發生,但是,網絡也沒有問題。這個錯誤很少發生,沒有明顯的原因。沒有錯誤信息。結果很簡單,我得到一個空obj。 – user1866880