public async Task<ActionResult> Login(LoginInfo model) { bool rememberme = false; model.ReconstructSettings(); this.ViewData[LoginInfo.Key] = model; LoadPage(model.Settings.Uri); var settings = model.Settings; string partialName = settings.PostPartialName; if (settings.UseValidateHuman) { bool IsValidated = model.ValidateHuman.ValidateValue(model.ValidationValue); if (!IsValidated) { ModelState.AddModelError("ValidationValue", model.ValidateHuman.AltValidationFailText); model.ValidationValue = String.Empty; } } if (ModelState.IsValid) { ModelState.Clear(); ApplicationUser user = await securityHelper.UserManager.FindByNameAsync(model.UserName); SignInStatus result = await securityHelper.SignInManager.PasswordSignInAsync(model.UserName, model.Password, rememberme, shouldLockout: true); model.LogInStatus = result; switch (result) { case SignInStatus.Success: await securityHelper.UserManager.ResetAccessFailedCountAsync(user.Id); break; case SignInStatus.RequiresVerification: if (!String.IsNullOrEmpty(settings.PostPartialNameVerification)) { partialName = settings.PostPartialNameVerification; } break; case SignInStatus.LockedOut: ModelState.AddModelError(String.Empty, "User locked out."); if (!String.IsNullOrEmpty(settings.PostPartialNameLockout)) { partialName = settings.PostPartialNameLockout; } break; case SignInStatus.Failure: default: ModelState.AddModelError(String.Empty, "Invalid login attempt."); if (!String.IsNullOrEmpty(settings.PostPartialNameFailure)) { partialName = settings.PostPartialNameFailure; } if (user.LockoutEndDateUtc.HasValue && user.LockoutEndDateUtc.Value < DateTime.UtcNow) { user.LockoutEndDateUtc = null; user.AccessFailedCount = 1; securityHelper.UserManager.Update(user); } break; } } return PartialView(partialName, model); }
public HtmlHelper <LoginInfo> GetModelHelper(string partialName) { _model = InitLoginInfo(partialName); return(InitHelp()); }