예제 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            appData  = AppData.GetAppData();
            userData = UserData.GetUserData();

            if (IsPostBack)
            {
                Title = (string)ViewState["Title"];
            }
            else
            {
                // перевод веб-страницы
                Translator.TranslatePage(this, "Scada.Web.WFrmLogin");
                ViewState["Title"] = Title;

                Localization.Dict dict;
                Localization.Dictionaries.TryGetValue("Scada.Web.WFrmLogin.Js", out dict);
                phrases = WebUtils.DictionaryToJs(dict);

                // вывод сообщения, заданного в параметрах запроса
                string alert        = Request.QueryString["alert"];
                bool   alertIsEmpty = string.IsNullOrEmpty(alert);
                if (!alertIsEmpty)
                {
                    AddShowAlertScript(alert);
                }

                // переход на стартовую страницу, если вход выполнен
                if (alertIsEmpty)
                {
                    if (userData.LoggedOn)
                    {
                        GoToStartPage();
                    }
                    else if (userData.WebSettings.RemEnabled)
                    {
                        // обработка сохранённого входа в систему
                        string username;
                        if (appData.RememberMe.ValidateUser(Context, out username, out alert) &&
                            userData.Login(username, out alert))
                        {
                            GoToStartPage();
                        }
                        else if (alert != "")
                        {
                            AddShowAlertScript(alert);
                        }
                    }
                }

                // настройка элементов управления
                pnlRememberMe.Visible = userData.WebSettings.RemEnabled;
                txtUsername.Text      = userData.LoggedOn ?
                                        userData.UserProps.UserName :
                                        appData.RememberMe.RestoreUsername(Context); // из cookie

                // добавление скрипта проверки браузера
                AddCheckBrowserSupportScript();
            }
        }
예제 #2
0
 public string Login(string username, string password)
 {
     try
     {
         UserData userData = UserData.GetUserData();
         string   errMsg;
         bool     loggedOn = userData.Login(username, password, out errMsg);
         return(JsSerializer.Serialize(new DataTransferObject(loggedOn)));
     }
     catch (Exception ex)
     {
         AppData.Log.WriteException(ex, Localization.UseRussian ?
                                    "Ошибка при выполнении входа пользователя в систему" :
                                    "Error performing user login");
         return(GetErrorDtoJs(ex));
     }
 }
예제 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            appData  = AppData.GetAppData();
            userData = UserData.GetUserData();

            if (IsPostBack)
            {
                Title = (string)ViewState["Title"];
            }
            else
            {
                // перевод веб-страницы
                Translator.TranslatePage(this, "Scada.Web.WFrmLogin");
                ViewState["Title"] = Title;

                // вывод сообщения, заданного в параметрах запроса
                string alert        = Request.QueryString["alert"];
                bool   alertIsEmpty = string.IsNullOrEmpty(alert);
                if (!alertIsEmpty)
                {
                    AddShowAlertScript(alert);
                }

                // обработка сохранённого входа в систему
                if (alertIsEmpty && !userData.LoggedOn && userData.WebSettings.RemEnabled)
                {
                    string username;
                    if (appData.RememberMe.ValidateUser(Context, out username, out alert) &&
                        userData.Login(username, out alert))
                    {
                        GoToStartPage();
                    }
                    else if (alert != "")
                    {
                        AddShowAlertScript(alert);
                    }
                }

                // настройка элементов управления
                pnlRememberMe.Visible = userData.WebSettings.RemEnabled;
                txtUsername.Text      = userData.LoggedOn ?
                                        userData.UserName :
                                        appData.RememberMe.RestoreUsername(Context); // из cookie
            }
        }
예제 #4
0
        protected void btnEnter_Click(object sender, System.EventArgs e)
        {
            UserData userData        = UserData.GetUserData();
            bool     alreadyLoggedOn = userData.LoggedOn;
            string   errMsg          = "";

            if (alreadyLoggedOn || userData.Login(txtLogin.Text, txtPassword.Text, out errMsg))
            {
                // проверка прав пользователя на выбранный набор представлений
                int            viewSetIndex = ddlViewSet.SelectedIndex;
                string         viewSetName  = userData.ViewSettings.ViewSetList[viewSetIndex].Name;
                MainData.Right viewSetRight = userData.GetViewSetRight(viewSetIndex);

                if (viewSetRight.ViewRight)
                {
                    // сохранение в cookie информации о входе пользователя
                    if (!alreadyLoggedOn)
                    {
                        userData.RememberUser(Context, !chkRememberUser.Checked);
                    }

                    // сохранение в cookie выбранного набора представлений
                    HttpCookie cookie = new HttpCookie("ScadaViewSet");
                    cookie.Value   = Server.UrlEncode(viewSetName);
                    cookie.Expires = DateTime.Now.Add(ScadaUtils.CookieExpiration);
                    Response.SetCookie(cookie);

                    // переход на страницу данных
                    Response.Redirect("~/Main.aspx?viewSet=" + viewSetIndex, false);
                }
                else
                {
                    errMsg = WebPhrases.NoViewSetRights;
                }
            }

            if (!string.IsNullOrEmpty(errMsg))
            {
                AddShowErrorScript(string.Format(WebPhrases.UnableLogin, errMsg));
            }
        }
예제 #5
0
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            string errMsg;

            if (userData.Login(txtUsername.Text, txtPassword.Text, out errMsg))
            {
                // сохранение информации о входе пользователя
                if (chkRememberMe.Checked)
                {
                    appData.RememberMe.RememberUser(userData.UserName, Context);
                }
                else
                {
                    appData.RememberMe.RememberUsername(userData.UserName, Context);
                }

                // переход на стартовую страницу
                GoToStartPage();
            }
            else
            {
                AddShowAlertScript(errMsg);
            }
        }
예제 #6
0
        /// <summary>
        /// Проверить вход пользователя в систему, в случае его отсутствия перейти на страницу входа в систему
        /// </summary>
        public static void CheckLoggedOn(this UserData userData, HttpContext context, bool redirectToLogin = true)
        {
            if (!userData.LoggedOn)
            {
                // проверка входа пользователя, сохранённого в cookie
                if (AppData.WebSettings.RemEnabled)
                {
                    string login;
                    bool   loggedOn;
                    RestoreUser(context, out login, out loggedOn);

                    if (loggedOn && !userData.Login(login))
                    {
                        ForgetUserLoggedOn(context);
                    }
                }

                // переход на страницу входа в систему
                if (!userData.LoggedOn && redirectToLogin)
                {
                    context.Response.Redirect("~/Login.aspx");
                }
            }
        }