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

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