예제 #1
0
        public async Task <ActionResult> Login() //HttpRequest request, string username
        {
            ViewData["Title"] = "Сервисный центр: вход в сервис";

            ViewData["Msg"] = Request.QueryString["Err"];
            //ViewData["Return"] = Request.QueryString["Return"];

            //0. Модель
            Models.Login.Dir.DirCustomerLogin dirCustomerLogin = new Models.Login.Dir.DirCustomerLogin();

            try
            {
                //1.1. Параметры
                //1.1.1. Логин
                dirCustomerLogin.Login          = Request.QueryString["username"];
                dirCustomerLogin.Pswd           = Request.QueryString["password"];
                dirCustomerLogin.DirLanguageID  = Convert.ToInt32(Request.QueryString["language"]);
                dirCustomerLogin.DirThemeID     = Convert.ToInt32(Request.QueryString["theme"]);
                dirCustomerLogin.DirInterfaceID = Convert.ToInt32(Request.QueryString["interface"]);
                //1.1.2. Сообщение о ошибке
                string Msg = Request.QueryString["Msg"]; if (!String.IsNullOrEmpty(Msg))
                {
                    ViewData["Msg"] = Msg;
                }
                //1.1.3. Для переадресации, например в Розницу
                string PageReturn = Request.QueryString["PageReturn"];


                //2. mLogin - Проверка Логина и Пароля
                if (await Task.Run(() => mLogin(dirCustomerLogin)))
                {
                    //2.1. Если переадресоваться, например в Розницу или интерфейс для Заказов покупателя
                    if (!String.IsNullOrEmpty(PageReturn))
                    {
                        return(Redirect("~/" + PageReturn + "/"));
                    }

                    //Если доступ только в Розницу
                    //if (field.RetailOnly) return Redirect("~/Retail/");

                    //2.2. Переходим "Домой"
                    return(Redirect("~/"));
                }
                else
                {
                    return(View(dirCustomerLogin));
                }
            }
            catch (Exception ex)
            {
                ViewData["Msg"] = exceptionEntry.Return(ex);
                return(View(dirCustomerLogin));
            }
        }
예제 #2
0
        public async Task <ActionResult> Login(Models.Login.Dir.DirCustomerLogin dirCustomerLogin)
        {
            ViewData["Title"] = "Сервисный центр: вход в сервис";

            try
            {
                if (dirCustomerLogin != null && (ModelState.IsValid || dirCustomerLogin.Pswd2.Length > 0))
                {
                    if (!String.IsNullOrEmpty(dirCustomerLogin.Pswd2))
                    {
                        dirCustomerLogin.Pswd = dirCustomerLogin.Pswd2;
                    }

                    if (await Task.Run(() => mLogin(dirCustomerLogin)))
                    {
                        //Если доступ только в Розницу
                        //if (field.RetailOnly) return Redirect("~/Retail/");
                        //Иначе - в основной сервис
                        return(Redirect("~/"));
                    }
                    else
                    {
                        ViewData["Msg"] = Classes.Language.Sklad.Language.msg4;
                        return(View(dirCustomerLogin));
                    }
                }
                else
                {
                    return(View(dirCustomerLogin));
                }
            }
            catch (Exception ex)
            {
                ViewData["Msg"] = exceptionEntry.Return(ex);
                return(View(dirCustomerLogin));
            }
        }
예제 #3
0
        private bool mLogin(Models.Login.Dir.DirCustomerLogin dirCustomerLogin)
        {
            HttpCookie CookieIPOL = null;

            if (!String.IsNullOrEmpty(dirCustomerLogin.Login) && !String.IsNullOrEmpty(dirCustomerLogin.Pswd))
            {
                #region 1. Проверяем Логин и Пароль

                Classes.Account.Login login = new Classes.Account.Login();
                field = login.Return(dirCustomerLogin.Login, dirCustomerLogin.Pswd, false);
                if (!field.Access)
                {
                    return(false);
                }

                #endregion


                #region Если выбрали упращённый режим входа

                if (dirCustomerLogin.DirLanguageID == 0)
                {
                    dirCustomerLogin.DirLanguageID = 1;
                }
                if (dirCustomerLogin.DirThemeID == 0)
                {
                    dirCustomerLogin.DirThemeID = 1;
                }
                if (dirCustomerLogin.DirInterfaceID == 0)
                {
                    dirCustomerLogin.DirInterfaceID = 2;
                }

                #endregion


                #region 2. Создаём Куку

                CookieIPOL            = new HttpCookie("CookieIPOL");
                CookieIPOL["CookieU"] = encode.UnionEncode(dirCustomerLogin.Login);
                CookieIPOL["CookieP"] = encode.UnionEncode(dirCustomerLogin.Pswd);
                CookieIPOL["CookieL"] = dirCustomerLogin.DirLanguageID.ToString();
                CookieIPOL["CookieT"] = dirCustomerLogin.DirThemeID.ToString();
                CookieIPOL["CookieI"] = dirCustomerLogin.DirInterfaceID.ToString();
                Response.Cookies.Add(CookieIPOL);

                #endregion


                #region 3. Пишем в БД о посещении (только Comercial)

                Classes.Function.FunctionMSSQL.Jurn.JurnDispLogining jurnDispLogining = new Classes.Function.FunctionMSSQL.Jurn.JurnDispLogining();
                jurnDispLogining.Write(field.DirCustomersID, dirCustomerLogin.Login, dirCustomerLogin.Pswd, "Browser: " + Request.Browser.Browser + ". UserAgent: " + Request.UserAgent);

                #endregion


                #region 4. Обновление - это есть в Дефолте

                Classes.Function.Variables.ConnectionString connectionString = new Classes.Function.Variables.ConnectionString();
                string ConStr = connectionString.Return(field.DirCustomersID, null, false);

                Classes.Update.Update update = new Classes.Update.Update();
                update.UpdatingOne(ConStr, field.DirCustomersID); //update.Start();

                #endregion


                return(true);
            }

            return(false);
        }