Esempio n. 1
0
        public virtual ActionResult ChangePassword(ChangePasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = new ExecutionResults();
                var user = new User
                               {
                                   UserID = SecurityContextManager.CurrentIdentity.Ticket.UserSession.UserID,
                                   Name = model.UserName,
                                   PasswordHash = model.ConfirmPassword
                               };
                if (UserManager.UpdateUser(user, model.OldPassword, Request.UserHostAddress, result))
                {   //success
                    if (this.IsJsonRequest())
                        return Json(new { success = true });

                    return RedirectToAction(MVC.Account.ChangePasswordSuccess());
                }
                //failed business layer rules
                if (this.IsJsonRequest())
                    return Json(new { success = false, message = result.ToHtmlString() });

                for (int e = 0; e < result.Messages.Count; e++)
                {
                    ModelState.AddModelError(e.ToString(CultureInfo.InvariantCulture), result.Messages[e].Message);
                }
                return View(model);
            }
            if (this.IsJsonRequest())
                return Json(new { success = false, errors = ModelState.ToJson() });

            return View(model); //modelstate already populated
        }
Esempio n. 2
0
        public virtual ActionResult CheckAliasIsAvailable(string alias)
        {
            if (alias == SecurityContextManager.CurrentIdentity.Name)
                return Json(new { success = true, message = "This is your current sign in alias." });

            var result = new ExecutionResults();
            if (!UserManager.ValidateName(alias, result))
                return Json(new { success = false, message = result.ToHtmlString() });

            var user = UserManager.GetUserByName(alias);
            return Json(new { success = (user == null), message = (User == null) ? "This name is available" : "This name is not available.  Choose another name." });
        }
        /// <summary>
        /// Combines the results of another ExecutionResults into this instance.
        /// </summary>
        /// <param name="results">The results to be combined.</param>
        public void Combine(ExecutionResults results)
        {
            if (results == null)
            {
                throw new ArgumentNullException("results");
            }
            if (results == this)
            {
                return;
            }

            for (int i = 0; i < results.messages_.Count; i++)
            {
                ExecutionStep step = results.messages_[i];
                this.messages_.Add(step);
                if (step.StepType == ExecutionStepType.Error)
                {
                    this.success_ = false;
                }
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Combines the results of another ExecutionResults into this instance.
        /// </summary>
        /// <param name="results">The results to be combined.</param>
        public void Combine( ExecutionResults results )
        {
            if (results == null)
                throw new ArgumentNullException("results");
            if (results == this)
                return;

            for (int i = 0; i < results.messages_.Count; i++)
            {
                ExecutionStep step = results.messages_[i];
                this.messages_.Add(step);
                if (step.StepType == ExecutionStepType.Error)
                    this.success_ = false;
            }
        }
Esempio n. 5
0
        public virtual ActionResult ForgotPassword(ForgotPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = new ExecutionResults();
                ProviderResolver<UserNotificationProvider>.Get.Provider.NotifyPasswordReset(model.UserName, result);

                if (this.IsJsonRequest())
                    return Json(new { success = result.Success, message = result.ToHtmlString() });

                if (result.Success)
                    return RedirectToAction(MVC.Account.Login());

                for (var e = 0; e < result.Messages.Count; e++)
                {
                    ModelState.AddModelError(e.ToString(CultureInfo.InvariantCulture), result.Messages[e].Message);
                }
                return View(model);
            }
            if (this.IsJsonRequest())
                return Json(new { success = false, errors = ModelState.ToJson() });

            return View(model); //modelstate already populated
        }
Esempio n. 6
0
 public virtual ActionResult Register(RegisterViewModel model, string returnUrl)
 {
     if (ModelState.IsValid)
     {
         var results = new ExecutionResults();
         var user = model.ToUser();
         var identity = UserManager.RegisterUser(user, UserSessionDurationType.Extended, Request.UserHostAddress, results);
         if (results.Success)
         {   //successful registration
             SecurityContextManager.CurrentUser = new UserPrincipal(identity);
             return RedirectToLocal(returnUrl);
         }
         //failed business layer
         results.AppendError("Failed to complete registration.");
         for (var e = 0; e < results.Messages.Count; e++)
         {
             ModelState.AddModelError(e.ToString(CultureInfo.InvariantCulture), results.Messages[e].Message);
         }
     }
     //failed data annotation validations
     model.Load();
     return View(model);
 }
Esempio n. 7
0
        public virtual ActionResult Login(LoginViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                var result = new ExecutionResults();
                var id = UserManager.AuthenticateUser(model.UserName, model.Password,
                    model.RememberMe ? UserSessionDurationType.Extended : UserSessionDurationType.PublicComputer,
                    Request.UserHostAddress, result);
                if (id.IsAuthenticated && result.Success)
                {   //login successful
                    SecurityContextManager.CurrentUser = new UserPrincipal(id);
                    return RedirectToLocal(returnUrl);
                }

                //failed business layer validations
                for (var e = result.Messages.Count - 1; e >= 0; e--)
                {
                    ModelState.AddModelError(e.ToString(CultureInfo.InvariantCulture), result.Messages[e].Message);
                }
            }
            // failed data annotation validations
            return View(model);
        }