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);
는 항상 null 얻었다. 그런 다음 다른 작업을 수행하기 위해 Visual Studio를 종료해야했습니다. 내가 돌아 왔을 때 Visual Studio를 열어서,이 코드는 방금 작업했습니다. 며칠 전 조직에 네트워크 문제가 있었고 그 기간 동안 PC를 끄지 않았습니다. 네트워크가 정상 상태로 돌아간 후 인터넷에 연결할 수 있었고 원격 데스크톱을 서버 등에 연결할 수있었습니다. 이는 Active Directory 인증이 정상적으로 완료되었음을 증명했지만 위의 코드는 주어진 이름에 대해 UserPrinical을 찾지 못했습니다. 내 자신의. 그런 다음 PC를 재부팅하면 코드가 정상적으로 작동합니다. 나는이 문제에 관해서는 매우 당혹 스럽다. 아무도 이것에 대한 좋은 설명을 제공 할 수 있습니까 ??
이 오류가 여전히 발생합니까? 지금이 사이트를 사용해 볼 수있는 곳이라면 오류가 발생합니까? – Derek
@Derek 아니요,이 결함은 다시는 발생하지 않았지만, 네트워크는 괜찮습니다. 이 오류는 분명한 이유없이 매우 드물게 발생합니다. 오류 메시지가 없습니다. 결과는 단순히 null obj를 얻은 것입니다. – user1866880