示例#1
0
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }
            else
            {
                var user = await UserManager.FindByNameAsync(model.Email);

                if (user != null && !(await UserManager.IsEmailConfirmedAsync(user.Id)))
                    if (!UserManager.IsInRole(user.Id, "admin"))
                        return View("DisplayEmail");

                //ApplicationUser user = UserManager.FindByEmail(model.Email);

                //if (user != null) 
                //    if (!string.IsNullOrEmpty(user.Id) && !UserManager.IsEmailConfirmed(user.Id))
                //        if (!UserManager.IsInRole(user.Id, "Admin"))
                //            return View("DisplayEmail");

                // This doen't count login failures towards lockout only two factor authentication
                // To enable password failures to trigger lockout, change to shouldLockout: true
                var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
                switch (result)
                {
                    case SignInStatus.Success:
                        return RedirectToLocal(returnUrl);
                    case SignInStatus.LockedOut:
                        return View("Lockout");
                    case SignInStatus.RequiresVerification:
                        return RedirectToAction("SendCode", new { ReturnUrl = returnUrl });
                    case SignInStatus.Failure:
                    default:
                        ModelState.AddModelError("", RQResources.Views.Shared.SharedStrings.am_login_error);
                        return View(model);
                }
            }
        }
示例#2
0
 public ActionResult SmallLogOff(LoginViewModel model, string returnUrl)
 {
     AuthenticationManager.SignOut();
     return RedirectToLocal(returnUrl);
 }