示例#1
0
        public ActionResult Login(string returnUrl)
        {
            ViewBag.ReturnUrl = returnUrl;
            using (GuptaAgroDbContext db = new GuptaAgroDbContext())
            {
                ViewBag.Roles = db.tbl_roles.Select(r => r).ToList();
            }

            return(View());
        }
示例#2
0
        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);
            //}
        }