Пример #1
0
        public ActionResult Login(LoginViewModel model, string ReturnUrl = "")
        {
            string message = "";

            var v = services.context.tbl_Users.Where(a => a.Email == model.Email).FirstOrDefault();

            if (v != null)
            {
                if (!v.isEmailVerifield)
                {
                    ViewBag.Message = "Please verify your email from your email address first";
                    return(View());
                }

                if (PublicHelper.IsStringSameAsHash(model.Password, v.Password))
                {
                    int    timeout   = model.RememberMe ? 500 : 20; // 525600 min = 1 year
                    var    ticket    = new FormsAuthenticationTicket(model.Email, model.RememberMe, timeout);
                    string encrypted = FormsAuthentication.Encrypt(ticket);
                    var    cookie    = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
                    cookie.Expires  = DateTime.Now.AddMinutes(timeout);
                    cookie.HttpOnly = true;
                    Response.Cookies.Add(cookie);

                    if (v.isAdmin == true)
                    {
                        //TempData["CurrentUser"] = model.Email;
                        return(RedirectToAction("Index", "Admin"));
                    }
                    else
                    {
                        if (Url.IsLocalUrl(ReturnUrl))
                        {
                            return(Redirect(ReturnUrl));
                        }
                        else
                        {
                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                }
                else
                {
                    message = "Invalid credential provided";
                }
            }
            else
            {
                message = "Invalid credential provided";
            }

            ViewBag.Message = message;
            return(View());
        }