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)); } }
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)); } }
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); }