private AccessTokenResponse AuthenticateByUsernameAndPassword(UserAuthentication userAuthen) { var user = repository.GetUserByUsername(userAuthen.Username); AccessTokenResponse token = null; UserAuthenticationValidation validation = new UserAuthenticationValidation(); var validationResult = validation.Validate(userAuthen); if (!validationResult.IsValid || user == null) { throw new BaseException(ErrorMessage.CREDENTIALS_NOT_MATCH); } var result = PasswordManipulation.VerifyPasswordHash(userAuthen.Password, user.PasswordHash, user.PasswordSalt); if (user != null && result) { token = CreateToken(user); } else { throw new BaseException(ErrorMessage.CREDENTIALS_NOT_MATCH); } return(token); }
public async Task <AccessTokenResponse> Register(RegisteredUser userRegister) { RegisteredUserValidation validation = new RegisteredUserValidation(this.repository); validation.ValidateAndThrow(userRegister); var user = userRegister.ToEntity <User>(); try { byte[] hash, salt; PasswordManipulation.CreatePasswordHash(userRegister.Password, out hash, out salt); user.PasswordHash = hash; user.PasswordSalt = salt; var roles = userRegister.Role.Trim().Split(","); foreach (var role in roles) { user.UserRole.Add(new UserRole() { RoleId = (int)Enum.Parse(typeof(RolesEnum), role, true) }); } await this.repository.AddAsync(user); } catch (Exception ex) { throw ex; } return(CreateToken(user)); }
public string Authenticate(string username, string password) { var customer = dbContext.Customer .SingleOrDefault(x => x.Username == username); if (customer == null || !PasswordManipulation.VerifyPasswordHash(password, customer.PasswordHash, customer.PasswordSalt)) { throw new NowVNException("Credentials are not valid"); } return(jwtTokenProvider.createAccesstoken(customer)); }
public Customer CreateCustomer(UserRegisterdViewModel userRegisterd) { Customer customer = userRegisterd.ToEntity <Customer>(); byte[] passwordSalt, passwordHash; PasswordManipulation.CreatePasswordHash(userRegisterd.Password, out passwordHash, out passwordSalt); customer.PasswordHash = passwordHash; customer.PasswordSalt = passwordSalt; customer.Id = Guid.NewGuid().ToString(); this.Add(customer); return(customer); }