예제 #1
0
        public ActionResult Create(UserInputModel userInputModel)
        {
            if (_session.Query <User>().Any(x => x.Username == userInputModel.Username))
            {
                ModelState.AddModelError("Username", "Username is already in use");
            }

            if (ModelState.IsValid)
            {
                var company = new Company(userInputModel.Username + " Co.");
                _session.Store(company);

                var user = new User(
                    userInputModel.Username,
                    Encryption.HashPassword(userInputModel.Password),
                    new string[0],
                    company);

                _session.Store(user);

                _authenticator.SetCookie(user.Id, false, user.Roles.ToArray());

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

            return(View("New", userInputModel));
        }
예제 #2
0
        public ActionResult UpdatePassword(UserUpdatePasswordModel model)
        {
            var user = _session.Load <User>(_executionContext.UserId);

            if (!Encryption.Verify(model.OldPassword, user.Password))
            {
                ModelState.AddModelError("OldPassword", "Incorrect original password");
                return(View("UpdatePassword", model));
            }

            if (model.NewPassword != model.ConfirmNewPassword)
            {
                ModelState.AddModelError("ConfirmNewPassword", "New password confirmation incorrect");
                return(View("UpdatePassword", model));
            }

            user.ChangePassword(Encryption.HashPassword(model.NewPassword));
            return(RedirectToAction("Index", "Home"));
        }
예제 #3
0
        public ActionResult Create(SessionViewModel sessionViewModel)
        {
            User user = null;

            if (ModelState.IsValid)
            {
                user = _session.Query <User>().SingleOrDefault(x => x.Username == sessionViewModel.Username);
                if (user == null)
                {
                    ModelState.AddModelError(string.Empty, errorMessage);
                }
            }

            if (ModelState.IsValid)
            {
                if (!Encryption.Verify(sessionViewModel.Password, user.Password))
                {
                    ModelState.AddModelError(string.Empty, errorMessage);
                }
            }

            if (ModelState.IsValid)
            {
                _authenticator.SetCookie(user.Id, false, user.Roles.ToArray());
                var returnUrl = sessionViewModel.ReturnUrl;
                if (returnUrl != null)
                {
                    Uri returnUri;
                    if (Uri.TryCreate(returnUrl, UriKind.Relative, out returnUri))
                    {
                        return(Redirect(sessionViewModel.ReturnUrl));
                    }
                }

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

            return(View("New", sessionViewModel));
        }