PrincipalContext.ValidateCredentials больше не работает в Windows 11C#

Место общения программистов C#
Ответить
Anonymous
 PrincipalContext.ValidateCredentials больше не работает в Windows 11

Сообщение Anonymous »

У меня есть .NET-приложение, в котором я предпочитаю аутентифицировать пользователей в нашем активном каталоге.
Пока я использую это:

Код: Выделить всё

private bool Authenticate()
{
using (var context = new PrincipalContext(ContextType.Domain, Environment.GetEnvironmentVariable("USERDNSDOMAIN")))
{
return context.ValidateCredentials(this.Username.Text, this.Password.Text, ContextOptions.Negotiate);
}
}
В течение многих лет он работал нормально, но на наших новых компьютерах с Windows 11 аутентификация не удалась. В Windows 11 мы теперь используем аутентификацию Microsoft.
Основное отличие, которое я обнаружил, заключается в том, что переменная среды LOGONSERVER показывает текущее имя компьютера, а не имя одного из ваших серверов AD. Если я вручную изменю LOGONSERVER на нашем сервере AD, аутентификация будет работать. Однако я думаю, что это не правильное решение.
Переменные среды USERDNSDOMAIN, USERDOMAIN и USERDOMAIN_ROAMINGPROFILE на старых компьютерах с Windows 10 одинаковы, как и на новых компьютерах с Windows 11.
Нужно ли мне изменять свой код для аутентификации?

Подробнее здесь: https://stackoverflow.com/questions/796 ... windows-11
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»