Сначала я создал страницу входа в систему, которая добавила пару ключ-значение в сеанс, и проверила, что на этой странице сеанс содержит эту пару.
Затем я пытаюсь перейти на другую страницу, которая ищет эту пару в сеансе, а ее там нет. Я установил таймаут для сессии до 15000, чтобы он не истекал.
В настоящее время я использую статический класс для просмотра сессии, HttpContext.Current.Session.
Каждая страница вызывает этот статический класс для просмотра сеанса, но каждый раз, когда счетчик ключа сеанса = 0, за исключением того, что после пары на странице входа в систему.
public static class UserAuthenticationManager
{
public static bool IsAuthenticated()
{
UserAuthenticationTicket ticket = ((UserAuthenticationTicket)HttpContext.Current.Session[DefinesPL.UserTicketSessionName]);
string redirectUrl = String.Format(DefinesPL.LoginPage);
if (ticket != null)
{
if (ticket.IsExpired())
{
HttpContext.Current.Session.Abandon();
HttpContext.Current.Response.Redirect(redirectUrl, true);
}
}
else
{
HttpContext.Current.Session.Abandon();
HttpContext.Current.Response.Redirect(redirectUrl, true);
}
return true;
}