Я реализовал единый вход с учетной записью Windows в Identity Server, вызвав HttpContext.AuthenticateAsync
в ExternalController, как и код по умолчанию, который уже присутствовал в коде Identity Server MVC ( см. Этот код ). Все это прекрасно работает.
В каком-то другом коде я нашел другой подход, и мне было интересно, почему они так сделали. В основном они проверяют учетные данные в AccountController
, например:
using (var principalContext = new PrincipalContext(ContextType.Domain, domainName))
{
return principalContext.ValidateCredentials(userName, password);
}
... и, если проверка завершается успешно, они делают:
await httpContext.SignInAsync(username, username, new AuthenticationProperties());
Итак, мой вопрос: что такое разница между двумя подходами и какой из них является рекомендуемым подходом для аутентификации пользователя по Windows?