Помимо настройки проверки подлинности в web.config файл, вы можете также использовать метод в Global.asax session_start (...) для проверки пользователей новой сессии, а также убедитесь, что вы Пересмотреть куки сессии, если она равна нулю, вы должны перенаправить пользователя на страницу входа в систему:
public class Global:System.Web.HttpApplication
{
protected void Session_Start(object sender, EventArgs e)
{
if(Session.IsNewSession)
{
if (Request.Headers["Cookie"] != null)
{
if (Request.Headers["Cookie"].IndexOf("Web_App_Login_Cookie", StringComparison.OrdinalIgnoreCase) >= 0)
{
FormsAuthentication.SignOut();
Context.User = null;
Response.Redirect("~/logOn.aspx");
}
}
}
}
}
Кроме того, если вы храните информацию о сеансе пользователя в каком-то классе можно переопределить OnInit (...) метод в некоторых базовый класс, чтобы гарантировать, что пользователь уже существует в какой-либо пользовательской коллекции сеансов, если n ot еще раз вам нужно перенаправить на страницу входа.
public class SessionBasePage : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (HttpContext.Current != null && HttpContext.Current.Session != null)
{
UserSession = HttpContext.Current.GetUserSession();
if (UserSession != null)
{
LoggedUserInfo = HttpContext.Current.GetLoggedUserInfo();
HttpContext.Current.UpdateLoggedUserInfo();
}
else { Response.Redirect("~/logOn.aspx", true); }
}
}
}
+1 для избиения меня. Вы можете улучшить свой ответ, добавив ссылку на свойство loginUrl –
, в котором говорится: в авторизации. –
kalls