public async Task<ActionResult> Login(LoginModel model, string returnUrl) { _logger.Log(string.Format("Login request received for user : {0}", model.UserName), LogCategory.Information, GetUserIdentifiableString(model.UserName)); if (ModelState.IsValid) { var loginResult = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: true); switch (loginResult) { case SignInStatus.Success: var user = await UserManager.FindByNameAsync(model.UserName); var isAdmin = await UserManager.IsInRoleAsync(user.Id, "Admin"); return RedirectToLocal(returnUrl, model.UserName, isAdmin); case SignInStatus.LockedOut: ModelState.AddModelError("", "User account is locked out. Please contact administrator."); return View(model); case SignInStatus.RequiresVerification: ModelState.AddModelError("", "Account verification is pending. Please verify your account."); return View(model); case SignInStatus.Failure: default: ModelState.AddModelError("", "Invalid login attempt."); return View(model); } //if (loginResult == SignInStatus.Success) //{ // var identityUser = await UserManager.FindByNameAsync(model.UserName); // if (identityUser != null) // { // _cookieHelper.SetCookie("_userInfo", identityUser.UserName, new TimeSpan(8, 0, 0)); // identityUser.aut (model.UserName, model.RememberMe); // _cookieHelper.SetCookie("_notification", "false", new TimeSpan(8, 0, 0)); // var userRole = _membershipService.GetRoleForUser(model.UserName); // if (userRole.Count > 0) // { // _logger.Log( // string.Format("Redirecting to {1} URL for user : {0}", model.UserName, returnUrl), // LogCategory.Verbose, GetUserIdentifiableString(model.UserName)); // return RedirectToLocal(returnUrl, model.UserName); // } // } // else // { // _logger.Log(string.Format("MembershipUser is found null for user : {0}", model.UserName), LogCategory.Warning, GetUserIdentifiableString(model.UserName)); // } //} //else //{ // _logger.Log(string.Format("Failed login attempt for user : {0}", model.UserName), LogCategory.Information, GetUserIdentifiableString(model.UserName)); //} } // If we got this far, something failed, redisplay form return View(model); }
public async Task<ActionResult> Login(string returnUrl, string userName) { using (var context = _dataContextFactory.Create(ConnectionType.Ip)) { // Hitting database just to let EF create it if it does not // exist based on initializer. context.Query<Organization>().Count(); } if (!Request.IsAuthenticated) { _logger.Log(string.Format("Request not authenticated, showing login form."), LogCategory.Information); return View(); } var model = new LoginModel(); if (string.IsNullOrWhiteSpace(userName) && HttpContext.User != null && !string.IsNullOrWhiteSpace(HttpContext.User.Identity.Name)) { userName = HttpContext.User.Identity.Name; } _logger.Log(string.Format("Request authenticated for user : {0}", userName), LogCategory.Information, GetUserIdentifiableString(userName)); if (string.IsNullOrWhiteSpace(userName)) { _logger.Log("UserName found null for user, showing login form.", LogCategory.Warning); return View(); } ViewBag.UserName = userName; ViewBag.ReturnUrl = returnUrl; model.UserName = userName; model.Password = string.Empty; var identityUser = await UserManager.FindByNameAsync(model.UserName); var isAdmin = await UserManager.IsInRoleAsync(identityUser.Id, "Admin"); if (identityUser == null) { _logger.Log(string.Format("MembershipUser is found null for user : {0}", userName), LogCategory.Warning, GetUserIdentifiableString(userName)); return View(); } // Setting a cookie value for notification status. _cookieHelper.SetCookie("_notification", "false", new TimeSpan(8, 0, 0)); var userRoles = await UserManager.GetRolesAsync(identityUser.Id); if (userRoles.Count > 0) { _logger.Log(string.Format("Redirecting to {1} URL for user : {0}", userName, returnUrl), LogCategory.Verbose, GetUserIdentifiableString(userName)); return RedirectToLocal(returnUrl, userName, isAdmin); } return View(); }
public async Task<ActionResult> Login(LoginModel model, string returnUrl) { _logger.Log(string.Format("Login request received for user : {0}", model.UserName), LogCategory.Information, GetUserIdentifiableString(model.UserName)); if (ModelState.IsValid) { var loginResult = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: true); switch (loginResult) { case SignInStatus.Success: var user = await UserManager.FindByNameAsync(model.UserName); var isAdmin = await UserManager.IsInRoleAsync(user.Id, "Admin"); return RedirectToLocal(returnUrl, model.UserName, isAdmin); case SignInStatus.LockedOut: ModelState.AddModelError("", "User account is locked out. Please contact administrator."); return View(model); case SignInStatus.RequiresVerification: ModelState.AddModelError("", "Account verification is pending. Please verify your account."); return View(model); case SignInStatus.Failure: default: ModelState.AddModelError("", "User Name and Password does not matches! Please provide your correct login credentials."); return View(model); } } // If we got this far, something failed, redisplay form return View(model); }