Ответ 1
На самом деле это довольно легко. Вам просто нужно переопределить метод CheckPasswordAsync в предоставленном UserManager. (Полное раскрытие, что мой пост в блоге).
public class ApplicationUserManager : UserManager<ApplicationUser> {
//...SNIP...
public override async Task<bool> CheckPasswordAsync(ApplicationUser user, string password)
{
return await Task.Run(() => {
_context = new PrincipalContext(ContextType.Domain);
return _context.ValidateCredentials(user.UserName, password, ContextOptions.Negotiate)
});
}
}
Это очень надежный метод, но он должен работать.