コード例 #1
0
        public ActionResult Login(LoginModel model)
        {
            string someDateTime = DateTime.Now.ToShortDateString();

            if (ModelState.IsValid)
            {
                // поиск пользователя в бд
                User user = null;
                using (ApplicationContext db = new ApplicationContext())
                {
                    string password = CodePass(model.Password);
                    user = db.SetUser.FirstOrDefault(u => u.Login == model.Login && u.Password == password);
                }
                if (user != null)
                {
                    SessionHubModel date = null;
                    using (ApplicationContext db = new ApplicationContext())
                    {
                        date = db.SetSessionHubModel.FirstOrDefault(u => u.UserId == user.Id && u.Date == someDateTime && u.IsAction == true);
                    }
                    if (date == null)
                    {
                        FormsAuthentication.SetAuthCookie(model.Login, true);
                        // Создать объект cookie-набора
                        HttpCookie cookie = new HttpCookie("cookieAuth");

                        // Установить значения в нем
                        cookie["Login"] = CryporEngine.Encrypt(model.Login, true);
                        cookie.Expires  = DateTime.Now.AddYears(1);

                        // Добавить куки в ответ
                        Response.Cookies.Add(cookie);

                        return(RedirectToAction("_Index", "Home"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Пользователь Авторизирован");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Пользователя с таким логином и паролем нет");
                }
            }

            return(View(model));
        }