コード例 #1
0
        public VoidOperationContract ResetPassword(ResetPasswordContract contract)
        {
            try
            {
                using (NeedAGolferDataContext dataContext = new NeedAGolferDataContext())
                {
                    var golferRetriever = RetrieverFactory.CreateInterface <IGolferRetriever>();
                    var golfer          = golferRetriever.SelectByUsernameAndEmail(contract.UserAccount, contract.EmailAddress);

                    string salt           = PasswordCrypto.GetSalt();
                    string hashedPassword = PasswordCrypto.ComputeHash(contract.Password, "SHA256", salt);
                    golfer.PasswordHash = hashedPassword;
                    golfer.PasswordSalt = salt;

                    dataContext.Golfers.Attach(golfer, true);
                    dataContext.SubmitChanges();
                    dataContext.Connection.Close();

                    return(new VoidOperationContract()
                    {
                        ErrorMessage = ""
                    });
                }
            }
            catch (Exception ex)
            {
                return(new VoidOperationContract()
                {
                    ErrorMessage = ex.Message
                });
            }
        }
コード例 #2
0
        public async Task <IActionResult> ResetPassword(ResetPasswordContract model)
        {
            await _userService.ResetPsw(new UserDto { Email = model.Email, Password = model.Password }, model.Code);

            return(RedirectToAction("Index", "Home"));
        }