Я пишу. NET Приложение Core 3.1 на основе IdentityServer4. Я хочу реализовать логин с доменным логином \ паролем. Я проверяю учетные данные пользователя с помощью этого кода:
try
{
using (var pc = new PrincipalContext(ContextType.Domain, domainName))
{
return pc.ValidateCredentials(username, password);
}
}
catch (Exception e)
{
throw new Exception("Error connecting to ActiveDirectory.", e);
}
Все в порядке, когда пользователь имеет доступ к компьютеру, на котором работает IIS Server. Но есть проблема в домене, в котором каждый пользователь имеет доступ только к своему компьютеру. В этой ситуации метод ValidateCredentials
возвращает false
.
Я реализовал проверку подлинности NTLM / Negotiate Windows, и в этом потоке проблем нет. Но этот тип проверки подлинности имеет ограничение: нет возможности войти в приложение под другим пользователем домена, кроме того, который в данный момент подключен к компьютеру.
Может кто-нибудь помочь мне, как проверить учетные данные пользователя без добавления доступа к IIS Server?