示例#1
0
        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);
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }
示例#4
0
        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);
        }