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