после этого ответа в StackOverflow Microsoft предложила выполнить следующие действия:
- Очистить cookie.
- Установите для свойства Response.Status значение 401.
- Выполните вызов метода Response.End, который неявно перенаправит страницу входа.
Iпришла с этой строкой кода в моем файле global.asax
(я добавил в свою таблицу пользователя дополнительное поле с именем isLogin
, которое я установил в true и false на страницах входа и выхода из системы ...)
void Application_PostAuthenticateRequest(object sender, EventArgs e)
{
IPrincipal p = HttpContext.Current.User;
if (p.Identity.IsAuthenticated)
{
var userName = p.Identity.Name;
HttpCookie authenticationCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (SecurityUtilities.CheckUserLoggedIn(userName) == false)
{
FormsAuthentication.SignOut();
Response.StatusCode = 401;
Response.End();
}
}
}
Мне интересно, все ли я делаю правильно?Как насчет этого кода?
if (SecurityUtilities.CheckUserLoggedIn(userName) == false)
{
FormsAuthentication.SignOut();
Response.Redirect(FormsAuthentication.LoginUrl);
}