public ActionResult Login(string returnUrl) { ViewBag.ReturnUrl = returnUrl; using (GuptaAgroDbContext db = new GuptaAgroDbContext()) { ViewBag.Roles = db.tbl_roles.Select(r => r).ToList(); } return(View()); }
public async Task <ActionResult> Login(LoginModel model, string returnUrl) { try { if (!ModelState.IsValid) { using (GuptaAgroDbContext db = new GuptaAgroDbContext()) { ViewBag.Roles = db.tbl_roles.Select(r => r).ToList(); } return(View(model)); } using (GuptaAgroDbContext db = new GuptaAgroDbContext()) { var user = db.tbl_employee.Where(e => (e.userid == model.UserName && e.password == model.Password) || (e.ContactNo == model.UserName && e.password == model.Password)).Select(e => e).FirstOrDefault(); if (user != null) { FormsAuthentication.SetAuthCookie(model.UserName, false); var authTicket = new FormsAuthenticationTicket(1, user.EmployeeName, DateTime.Now, DateTime.Now.AddMinutes(30), false, user.Role); string encryptedTicket = FormsAuthentication.Encrypt(authTicket); var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); HttpContext.Response.Cookies.Add(authCookie); Session["role"] = user.Role; Session["ID"] = user.EmployeeID; Session.Timeout = 30; if (user.Role == "Admin") { return(RedirectToAction("BeneficiaryDetails", "Home")); } else if (user.Role == "Field Assitant") { return(RedirectToAction("OandMSheet", "Home")); } else if (user.Role == "Manager") { return(RedirectToAction("ComplaintForm", "Home")); } else if (user.Role == "Inventory Admin") { return(RedirectToAction("StockDistribution", "Home")); } else { throw new Exception(); } } else { ViewBag.Roles = db.tbl_roles.Select(r => r).ToList(); ModelState.AddModelError("", "Invalid login attempt."); return(View(model)); } } } catch (Exception ex) { return(View("Error")); } //// This doesn't count login failures towards account lockout //// To enable password failures to trigger account 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, RememberMe = model.RememberMe }); // case SignInStatus.Failure: // default: // ModelState.AddModelError("", "Invalid login attempt."); // return View(model); //} }