Прежде всего, вам необходимо установить пакет ниже, чтобы использовать функции ActiveDirectory.
Install-Package Microsoft.Windows.Compatibility
Во-вторых, вам необходимо реализовать IResourceOwnerPasswordValidator и проверить пароль пользователя с ActiveDirectory в этом.
public class ActiveDirectoryResourceOwnerPasswordValidator : IResourceOwnerPasswordValidator
{
public Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
{
const string LDAP_DOMAIN = "exldap.example.com:5555";
using (var pcontext = new PrincipalContext(ContextType.Domain, LDAP_DOMAIN, "service_acct_user", "service_acct_pswd"))
{
if (pcontext.ValidateCredentials(context.UserName, context.Password))
{
// user authenticated and set context.Result
}
}
// User not authenticated and set context.Result
return Task.CompletedTask;
}
}
Затем зарегистрируйте его на Startup.cs
services.AddSingleton<IResourceOwnerPasswordValidator, ActiveDirectoryResourceOwnerPasswordValidator>();