2010-01-12 7 views
0

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

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

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

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

Любые мысли?

ответ

0

Очень рекомендую прочитать раздел, озаглавленный «Модель событий трубопровода» в этой статье журнала MSDN: Securely Implement Request Processing, Filtering, and Content Redirection with HTTP Pipelines in ASP.NET.

В двух словах аутентификация выполняется задолго до того, как запрос передан ProcessRequest() в ваш HttpHandler. Если вам нужно обрабатывать эти случаи, вам нужно будет подключить к событиям трубопровода (например, BeginRequest или Аутентифицировать 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. 

    } 

    ... 
} 

Для дальнейшего чтения по этой увлекательной и захватывающей теме , check Rich Strahl's walkthrough: A low-level Look at the ASP.NET Architecture

Смежные вопросы