2009-04-02 3 views
1

Странная проблема здесь, мы запускаем несколько веб-приложений с смешанной средой, которые используют аутентификацию Windows или Forms в зависимости от того, откуда приходит пользователь.Смешанная проверка подлинности Windows/форм с объектами сеанса

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

Любые предложения или мнения были бы весьма признательны.

Спасибо,

ответ

1

Я не знает, как ваш метод аутентификации влияет на время ожидания сеанса, механизм они используют, чтобы получить в не должен влиять, как долго они могут оставаться в.

Вообще говоря, если кто-то имеет истекший сеанс, вы можете добавить код для проверки, активен ли их сеанс. Если это не так, просто перенаправьте их на страницу входа или покажите другой дружественный текст.

В основном что-то вроде:

if (Session.IsNewSession) 
    Response.Redirect("login.aspx"); 
+0

Где бы вы предложили DRYest место для этой проверки? – thismat

+0

Это действительно зависит от структуры вашего сайта. Если вы используете основную страницу, вы можете добавить ее в нее Page_Load или Page_Init. Если у вас есть общий пользовательский элемент управления, вы можете добавить его в его page_Init. Вы также можете просто добавить его вручную в Page_Load каждой страницы, использующей данные сеанса. – AaronS

+0

Мне не нравится идея поддерживать что-то на многих страницах, мы делаем главную страницу, и она отлично работает, спасибо. – thismat

0
  • Не хранить ненужную информацию о сессии.
  • Если вы храните что-то, что вы можете перезагрузить, у вас есть соответствующий код, который перезагрузит его, если он не был найден в сеансе.
  • Рассмотрите, должны ли обрабатываться некоторые процессы в течение длительного периода времени, и в этом случае сохранить промежуточную информацию в базе данных.
  • Если пользователь выполняет процесс, который использует сеанс, и данные отсутствуют, переведите их на шаг 1 (вы не можете много сделать, если у вас нет информации в другом месте).
Смежные вопросы