Я борюсь с проблемой использования System.DirectoryServices.AccountManagement в моем внутреннем веб-приложении. Ошибка не очень наглядна, но вот что происходит:
Когда я пытаюсь проверить, существует ли предоставленный идентификатор пользователя в AD, я делаю это с помощью следующего кода:
private bool IsWindowsIDValid(string strWindowsID)
{
var context = new PrincipalContext(ContextType.Domain, "DOMAINSERVER", "DC=DOMAINNAME,DC=net");
var userPrincipal = UserPrincipal.FindByIdentity(context, strWindowsID);
return (userPrincipal != null);
}
Однако, исключение - это бросить во второй строке, где вызывается FindByIdentity. Вот подробности исключения:
Сообщение:
«Произошла ошибка операции».
Трассировка стека:
в System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInit ()
в System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit ()
в System.DirectoryServices.AccountManagement.PrincipalContext.Initialize ()
в System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx ()
в System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper (контекст PrincipalContext, тип PrincipalType, Nullable`1 identityType, String identityValue, DateTime refDate)
в System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithType (контекст PrincipalContext, тип PrincipalType, String identityValue)
в System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity (контекст PrincipalContext, String identityValue)
в *****. IsWindowsIDValid (String strWindowsID) в *****. ascx.cs: строка 193
Эта же ошибка возникает, если я пытаюсь также проверить свойство ConnectedServer PrincipalContext. Тем не менее, я могу попытаться проверить учетные данные в контексте (используя context.ValidateCredentials ()), и это пройдет очень хорошо.
Есть идеи относительно того, что может происходить? Я могу нормально запустить этот код в автономном консольном скрипте на моем компьютере - это происходит в моей локальной среде разработки, внутри VisualStudio, когда я пытаюсь отладить веб-приложение. Это проблема с разрешениями или что-то еще? Я довольно потерян в этот момент.
Я ценю любую помощь!
-Patrick