У меня есть приложение, в котором пользователь проходит аутентификацию в нашей Active Directory:
private bool Authenticate()
{
using (var context = new PrincipalContext(ContextType.Domain, Environment.UserDomainName))
{
return context.ValidateCredentials(this.Username.Text.Trim(), this.Password.Text.Trim());
}
}
Он работал нормально в течение нескольких лет. Теперь наши машины с Windows 7 заменяются на Windows 10, и некоторые пользователи получают эту ошибку:
Сервер не может обрабатывать запросы каталогов.
в System.DirectoryServices.Protocols.ErrorChecking.CheckAndSetLdapError (ошибка Int32)
в System.DirectoryServices.Protocols.LdapSessionOptions.FastConcurrentBind ()
в System.DirectoryServices.AccountManagement.CredentialValidator.BindLdap (NetworkCredential creds, ContextOptions contextOptions)
в System.DirectoryServices.AccountManagement.CredentialValidator.Validate (String userName, String password)
в System.DirectoryServices.AccountManagement.PrincipalContext.ValidateCredentials (строковое имя пользователя, строковый пароль)
в DPI.FormLogin.Authenticate () в c: \ Developing \ Source \ DPI \ Client \ DPI \ FormLogin.cs: строка 280
Ошибка появляется только для некоторых пользователей, а не постоянно. Возможно, это связано с настройками безопасности, которые теперь стали намного строже в Win 10, чем в Win 7. Раньше.
Есть идеи, как это решить? Как я могу опросить подключенный в данный момент сервер LDAP? Возможно, наши серверы настроены немного иначе, и проблема ограничена только одним сервером, который может быть неправильно настроен.