public async Task AddUser(UserRegistrationDTO model)
        {
            model.DynamicSalt = GenerateSalt.GetDinamicSalt();
            model.PassHash    = SHA256Encrypt.getHashSha256WithSalt(model.Password, model.DynamicSalt);
            var user = _mapper.Map <UserRegistrationDTO, User>(model);
            await _uow.UserRepos.AddUser(user);

            await CommitAsync();
        }
        public async Task <string> GeneratePasswordResetTokenAsync(UserDTO model)
        {
            model.VerifyCodeForResetPass = SHA256Encrypt.getHashSha256(model.Email);
            var user = _mapper.Map <UserDTO, User>(model);
            await _uow.UserRepos.Update(user);

            await CommitAsync();

            return(model.VerifyCodeForResetPass);
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Login(LoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await _userService.FindUserByEmail(model.Email);

                if (user != null && SHA256Encrypt.checkHashSha256(model.Password, user.PassHash, user.DynamicSalt))
                {
                    await Authenticate(user);

                    return(RedirectToAction("Profile", "Profile"));
                }
                ModelState.AddModelError("", "Некорректные логин и(или) пароль");
            }
            return(View(model));
        }
        public async Task <bool> ResetPasswordAsync(UserDTO user, string token, string newPassword)
        {
            if (token == user.VerifyCodeForResetPass)
            {
                var map = _mapper.Map <UserDTO, User>(user);
                map.PassHash = SHA256Encrypt.getHashSha256WithSalt(newPassword, user.DynamicSalt);
                await _uow.UserRepos.ResetPassword(map);
                await CommitAsync();

                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemplo n.º 5
0
    private string GenerateAccessToken(string id)
    {
        //threadid+time encrypt with sha256 for accesstoken
        string accesstoeknkey = Thread.CurrentThread.ManagedThreadId.ToString() + DateTime.Now.Ticks.ToString();
        string AccessToken    = SHA256Encrypt.EncryptText(accesstoeknkey).Replace("-", string.Empty);

        //sso session write into db
        DAO dao = new DAO();

        dao.InsertSSOSession(sso.idx, accesstoeknkey, DateTime.Now, AccessToken);
        //delete expired ssosession
        dao = new DAO();
        dao.DeleteSSOSession(_accessTokenExpiredMins);

        return(AccessToken);
    }