Esempio n. 1
0
        public ActionResult SecretCode(SecretCodeModel secretCode)
        {
            try
            {
                HttpCookie     cookie   = HttpContext.Request.Cookies.Get(".SECURECODE");
                CookieUserInfo userInfo = (CookieUserInfo)HttpRuntime.Cache.Get(HttpContext.Request.UserHostAddress + HttpContext.Request.UserAgent);

                if ((cookie == null) || (userInfo == null) || (cookie.Value != userInfo.Cookie.Value))
                {
                    return(RedirectToAction("Index"));
                }

                Customer customer  = _repo.Customers.GetAll(c => (c.Login == userInfo.LoginModel.Name) && (c.Passoword == userInfo.LoginModel.Password)).ToList().First();
                var      card      = customer.AccessCards.First();
                var      codes     = _repo.AccessCodes.GetAll(c => c.AccessCardID == card.AccessCardID).ToList();
                var      code      = codes.Where(c => c.Number == secretCode.CodeIndex).First();
                var      codeCount = _repo.AccessCodes.GetAll(c => c.AccessCardID == card.AccessCardID).Count();


                if (code.Code == secretCode.EnteredCode)
                {
                    WebSecurity.Login(userInfo.LoginModel.Name, userInfo.LoginModel.Password);
                    RedirectToAction("Index", "Home");
                }
                else
                {
                    CodeEnterFail(card);
                    if (card.IsBlocked == true)
                    {
                        return(View("AccountBlocked"));
                    }
                    ModelState.Remove("CodeIndex");
                    var secretCodeModel = new SecretCodeModel()
                    {
                        CodeIndex = (new Random()).Next(1, codeCount),
                        Remaining = GetEnterCodeRemaining(card)
                    };

                    ResetCookie(userInfo.LoginModel);
                    ModelState.AddModelError("", "Неправильный код. Попробуйте еще раз");
                    return(View(secretCodeModel));
                }

                return(RedirectToAction("Index", "Home"));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
Esempio n. 2
0
        public ActionResult SecretCode()
        {
            HttpCookie     cookie   = HttpContext.Request.Cookies.Get(".SECURECODE");
            CookieUserInfo userInfo = (CookieUserInfo)HttpRuntime.Cache.Get(HttpContext.Request.UserHostAddress + HttpContext.Request.UserAgent);

            if ((cookie == null) || (userInfo == null) || (cookie.Value != userInfo.Cookie.Value))
            {
                return(RedirectToAction("Index"));
            }

            Customer customer  = _repo.Customers.GetAll(c => (c.Login == userInfo.LoginModel.Name) && (c.Passoword == userInfo.LoginModel.Password)).ToList().First();
            var      card      = customer.AccessCards.First();
            var      codeCount = _repo.AccessCodes.GetAll(c => c.AccessCardID == card.AccessCardID).Count();

            ModelState.Remove("CodeIndex");
            var secretCodeModel = new SecretCodeModel()
            {
                CodeIndex = (new Random()).Next(1, codeCount),
                Remaining = GetEnterCodeRemaining(card)
            };

            ResetCookie(userInfo.LoginModel);
            return(View(secretCodeModel));
        }