示例#1
0
        public static Data.User ControlLogin()
        {
            if (HttpContext.Current.Session["User"] != null)
            {
                return((Data.User)HttpContext.Current.Session["User"]);
            }



            if (HttpContext.Current.Request.Cookies["userauth"] != null)
            {
                string tokenFromCookie = HttpContext.Current.Request.Cookies["userauth"].Value;

                using (Data.SimpleData db = new Data.SimpleData())
                {
                    Data.Token token = db.Tokens.FirstOrDefault(t => t.TokenKey == tokenFromCookie && t.ExpireDate > DateTime.Now);

                    if (token != null)
                    {
                        HttpContext.Current.Session["User"] = token.User;
                        return(token.User);
                    }
                }
            }

            return(null);
        }
        public ActionResult Login(Data.User user)
        {
            string returnUrl = Request["returnUrl"];

            LoginResponse response = new LoginResponse((int)CommonContant.LANGUAGEID.TR);

            try
            {
                using (Data.SimpleData db = new Data.SimpleData())
                {
                    string password = Security.sha512encrypt(user.Password).Substring(0, 70);
                    var    User     = db.Users.FirstOrDefault(t => t.Email == user.Email && t.Password == password);


                    if (User == null)
                    {
                        response.SetErrror(CommonContant.ERROR_CODE.NONACTIVEUSER);
                        return(View(response));
                    }

                    if (User.ActiveStatus != (int)CommonContant.ActiveStatus.activeuser)
                    {
                        response.SetErrror(CommonContant.ERROR_CODE.NONACTIVEUSER);
                        return(View(response));
                    }


                    Data.Token token = new Data.Token
                    {
                        CreateDate = DateTime.Now,
                        ExpireDate = DateTime.Now.AddHours(6),
                        TokenKey   = Security.sha512encrypt(RandomSfr.Generate(20)),
                    };
                    User.Tokens.Add(token);
                    db.SaveChanges();

                    HttpCookie c*k = new HttpCookie("userauth", token.TokenKey);
                    c*k.Expires = DateTime.Now.AddHours(6);
                    Response.Cookies.Add(c*k);

                    Session["User"] = User;

                    if (string.IsNullOrEmpty(returnUrl))
                    {
                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        return(Redirect(returnUrl));
                    }
                }
            }
            catch (Exception ex)
            {
                response.SetErrror(CommonContant.ERROR_CODE.SYSTEM_ERROR);
            }

            return(View());
        }