Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Обнаружение тайм-аута аутентификации с помощью форм на странице входа

Автор вопроса: RyanWОтветов: 1

Если у вас есть настройка проверки подлинности с помощью форм для перенаправления на login.aspx при доступе к защищенной странице, какой хороший способ определить в login.aspx, был ли пользователь отправлен туда, потому что он еще не вошел в систему, или потому что его билет проверки подлинности форм является истекший? Я хочу отобразить сообщение "Истекло время ожидания".

(Я не упоминаю слово сеанс в этом вопросе, потому что ASP.NET рассматривает их так отчетливо, однако, если есть хорошее решение, которое включает сеанс, я все уши)

Раньше я решал эту проблему, задавая еще одну функцию "hasloggedin", когда пользователь входит в систему, а затем проверяет, существует ли она, чтобы определить, истек ли это время, и затем отображать соответствующее сообщение. Но, должно быть, это обычная проблема?

  • Ваш метод cookie кажется хорошим способом сделать это. Если вы уже используете переменные сеанса (в зависимости от их относительного значения тайм-аута по отношению к таймауту аутентификации), вы можете проверить Page.Session.IsNewSession, чтобы узнать, был ли сеанс создан с текущим запросом. JustinStolle 02.10.2010

securitytimeoutforms-authentication

Ответы

Ответ 1 · рейтинг 2 · PortageMonkey

При проверке подлинности с помощью форм автоматически добавляется параметр URL-адреса ReturnURL, указывающий, какая страница (если есть) инициировала перенаправление на страницу входа. Большинство веб-сайтов имеют в качестве страницы по умолчанию "Default.aspx" или "index.html" и т. Д. Вы можете проверить ReturnURL, чтобы узнать, содержит ли он страницу по умолчанию или какую-либо другую страницу в вашем приложении.

ПРИМЕР:

string refererURL;
if (page.Request.QueryString["ReturnURL"] != null)
{
    refererURL = page.Request.QueryString["ReturnURL"].ToString();
}

//Check to see if user was redirected because of Timeout or initial login
//Where "Default.aspx" is the default page for your application
if (refererURL != "" && refererURL != (ResolveUrl("~") + "Default.aspx"))
{
    //Show HTML etc showing session timeout message
}
else // User redirected here to to initial login
{
    //Show HTML showing initial login HTML message etc
}

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы