Определение времени ожидания проверки подлинности форм на странице входа - PullRequest
2 голосов
/ 30 августа 2009

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

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

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

1 Ответ

2 голосов
/ 30 августа 2009

При проверке подлинности с помощью форм автоматически добавляется параметр 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
}
...