Истечение срока действия Cookie в .Net - PullRequest
0 голосов
/ 12 января 2010

Я работаю над приложением, использующим аутентификацию формы ASP.Net. Клиент также выполняет RESTfull-вызовы на сервер (компоненты ExtJS на внешнем интерфейсе).

Мы используем пользовательский HttpHandler для сервисных вызовов.

Моя проблема в том, что каждый раз, когда истекает срок действия файла cookie аутентификации, мой метод ProcessRequest моего HttpHandler не вызывается, чтобы я мог проверить отсутствие файла cookie и перенаправить пользователя на повторный вход.

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

Есть мысли?

1 Ответ

0 голосов
/ 12 января 2010

Настоятельно рекомендуем прочитать раздел, озаглавленный «Модель событий конвейера» в этой статье журнала MSDN: Безопасно реализовать обработку запросов, фильтрацию и перенаправление контента с помощью конвейеров HTTP в ASP.NET .

В двух словах, аутентификация выполняется задолго до того, как запрос будет передан на ProcessRequest() в вашем HttpHandler. Если вам нужно обработать эти случаи, вам нужно подключиться к конвейерным событиям (таким как BeginRequest или Authenticate Request) и добавить свои собственные обработчики, например:

public class EnableWebServicesModule : 
               IHttpModule
  {

    public void Init(HttpApplication app)
    {
      // register event handler
      app.BeginRequest +=  new EventHandler(this.OnBeginRequest);
    }

    public void OnBeginRequest(object obj, EventArgs ea)
    {
      // Check if security works here by looking for the cookie or
      // the user context.

    }

    ...
}

Для дальнейшего чтения по этой увлекательной и захватывающей теме, проверьте прохождение Рича Штрала: Низкоуровневый взгляд на архитектуру ASP.NET

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...