private User GetResonseUser(RFNetUser user, string token) { var responseUser = new User(); responseUser.UserId = user.UserId ?? 0; responseUser.Token = token; responseUser.Email = user.Email; responseUser.Username = user.UserName; return(responseUser); }
//PasswordHasher passwordHasher = new PasswordHasher(); //Configuration configuration = new Configuration(); //public UserAuthintications(ref Configuration _configuration) //{ // configuration = _configuration; //} public User Authenticate(object model, string username, string password, bool isHashBased, LoginType loginType, DbContext context = null) { RFNetUser user = new RFNetUser(); if (LoginType.DbLogin == loginType) { user = GetUserByUserName(model, username); if (user == null) { return(null); } bool isVerified; var passwordHasher = new PasswordHasher <RFNetUser>(new OptionsWrapper <PasswordHasherOptions>( new PasswordHasherOptions() { CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV2 })); if (isHashBased) { isVerified = passwordHasher.VerifyHashedPassword(user, user.PasswordHash, password) == PasswordVerificationResult.Success; } else { isVerified = user.Password == password; } if (isVerified) { return(GetResonseUser(user, GetToken(user))); } } else if (LoginType.ADLogin == loginType) { if (LoginLdap(username, password)) { user = GetUserByUserName(model, username); } if (user != null) { return(GetResonseUser(user, GetToken(user))); } } return(null); }
private string GetToken(RFNetUser user) { var tokenHandler = new JwtSecurityTokenHandler(); //var key = Encoding.ASCII.GetBytes(_appSettings.Secret); var expireAt = DateTime.MaxValue; var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, user.UserName.ToString()), new Claim("UserId", user.UserId.ToString()), }), //Expires = expireAt, SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.ASCII.GetBytes(@"MIGpAgEAAiEAuMmqfAzvVKJpIieaQkfC8BlZACwoOZssBCc/HIphNXcCAwEAAQIg Givly4ABfZkrDr1RKcYEI8Oyi9IoYes6eiO2fU1ALIECEQDe3gSNIlRk7Y8isu+Y qS1hAhEA1EJmx1b6rhjMxd4r2SG51wIQVylfgE7/0KU0CK8Qk5T+oQIQOI1cft3g ukPnQwy3mAlRTwIQDeu1TMQl74QOdaI3YZ5voA==")), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(token)); }