47 lines
1.6 KiB
C#
47 lines
1.6 KiB
C#
using IdentityModel;
|
|
using IdentityServer4.Models;
|
|
using IdentityServer4.Validation;
|
|
using IRaCIS.Core.Domain.Models;
|
|
using IRaCIS.Core.Infra.EFCore;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace IRaCIS.Core.IdentityServer4.Account
|
|
{
|
|
public class AdminResourceOwnerPasswordValidator : IResourceOwnerPasswordValidator
|
|
{
|
|
private readonly IRepository<User> _userRepository;
|
|
|
|
public AdminResourceOwnerPasswordValidator(IRepository<User> userRepository)
|
|
{
|
|
_userRepository = userRepository;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 验证登录信息
|
|
/// </summary>
|
|
/// <param name="context"></param>
|
|
/// <returns></returns>
|
|
public Task ValidateAsync(ResourceOwnerPasswordValidationContext context)
|
|
{
|
|
var user = _userRepository.Where(a => a.UserName == context.UserName&&a.Password==context.Password).FirstOrDefault();
|
|
|
|
if (user == null)
|
|
{
|
|
context.Result = new GrantValidationResult(TokenRequestErrors.InvalidGrant, "账号/密码输入有误!");
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
//var password = MD5Encrypt.Encrypt32(context.Password);
|
|
//if (user.Password != password)
|
|
//{
|
|
// context.Result = new GrantValidationResult(TokenRequestErrors.InvalidGrant, "密码输入有误!");
|
|
// return;
|
|
//}
|
|
|
|
context.Result = new GrantValidationResult(user.Id.ToString(), OidcConstants.AuthenticationMethods.Password);
|
|
|
|
return Task.CompletedTask;
|
|
}
|
|
}
|
|
} |