Beispiel #1
0
        /// <summary>
        /// Проверить, что пользователь вошёл систему.
        /// Если вход не выполнен, то перейти на страницу входа или вызвать исключение
        /// </summary>
        public void CheckLoggedOn(bool tryToLogin)
        {
            if (!LoggedOn)
            {
                if (tryToLogin)
                {
                    HttpContext httpContext = HttpContext.Current;
                    WebUtils.CheckHttpContext(httpContext);

                    // попытка входа с использованием cookies
                    string username;
                    string alert = "";

                    if (WebSettings.RemEnabled &&
                        AppData.RememberMe.ValidateUser(httpContext, out username, out alert))
                    {
                        Login(username, out alert);
                    }

                    // переход на страницу входа
                    if (!LoggedOn)
                    {
                        string returnUrl = HttpUtility.UrlPathEncode(httpContext.Request.Url.ToString());
                        httpContext.Response.Redirect(alert == "" ?
                                                      string.Format(UrlTemplates.LoginWithReturn, returnUrl) :
                                                      string.Format(UrlTemplates.LoginWithAlert, returnUrl, HttpUtility.UrlEncode(alert)));
                    }
                }
                else
                {
                    throw new ScadaException(WebPhrases.NotLoggedOn);
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// Получить данные пользователя приложения
        /// </summary>
        /// <remarks>Для веб-приложения данные пользователя сохраняются в сессии</remarks>
        public static UserData GetUserData()
        {
            HttpContext httpContext = HttpContext.Current;

            WebUtils.CheckHttpContext(httpContext);
            HttpSessionState session  = httpContext.Session;
            UserData         userData = session["UserData"] as UserData;

            if (userData == null)
            {
                // обновление данных веб-приложения
                AppData.Refresh();

                // создание данных пользователя
                userData = new UserData();
                session.Add("UserData", userData);

                // получение IP-адреса и идентификатора сессии
                userData.IpAddress = httpContext.Request.UserHostAddress;
                userData.SessionID = session.SessionID;

                // обновление ссылок на объекты общих данных приложения
                userData.UpdateAppDataRefs();
            }

            return(userData);
        }
Beispiel #3
0
        /// <summary>
        /// Проверить, что пользователь вошёл систему.
        /// Если вход не выполнен, то перейти на страницу входа или вызвать исключение
        /// </summary>
        public void CheckLoggedOn(bool tryToLogin)
        {
            if (!LoggedOn)
            {
                if (tryToLogin)
                {
                    HttpContext httpContext = HttpContext.Current;
                    WebUtils.CheckHttpContext(httpContext);

                    // попытка входа с использованием cookies
                    string username;
                    string alert = "";

                    if (WebSettings.RemEnabled &&
                        AppData.RememberMe.ValidateUser(httpContext, out username, out alert))
                    {
                        Login(username, out alert);
                    }

                    // переход на страницу входа
                    if (!LoggedOn)
                    {
                        httpContext.Response.Redirect("~/Login.aspx" +
                                                      "?return=" + HttpUtility.UrlEncode(httpContext.Request.Url.ToString()) +
                                                      (alert == "" ? "" : "&alert=" + HttpUtility.UrlEncode(alert)));
                    }
                }
                else
                {
                    throw new ScadaException(WebPhrases.NotLoggedOn);
                }
            }
        }