sábado, 10 de octubre de 2009

Usando HttpModules y HttpHandlers

Muchas veces necesitamos realizar tareas antes de que una pagina sea solicitada [es comun realizar conteos de estadisticas, validacion de permisos,etc]. Tenemos dos maneras de injectar logica al pipeline request: HttpHandlers y HttpModules.
HttpModule 
Podemos ver al HttpModule como una forma de injectar logica basada en eventos. Cuando un cliente solicita un recurso se inica un pipeline request que dispara una serie de eventos.
  • AcquireRequestState   
  • AuthenticateRequest   
  • AuthorizeRequest   
  • BeginRequest   
  • Disposed   
  • EndRequest   
  • Error   
  • PostRequestHandlerExecute   
  • PreRequestHandlerExecute   
  • PreSendRequestContent   
  • PreSendRequestHeaders   
  • ReleaseRequestState   
  • ResolveRequestCache   
  • UpdateRequestCache   
Un HttpModule no es mas que una clase que implementa la interfaz IHttpModule, que tiene los siguientes metodos [Init y Dispose] requeridos. Dentro del metodo Init recibimos un parametro HttpApplication, en el que tenemos el estado actual del sitio, este es ejecutado antes que cualquier evento asociado al recurso que se esta solicitando, de manera que es el lugar en el que nos subscribiremos a los eventos que necesitemos manejar.
Registrando un HttpModule
<httpmodules>
<add type="classname, assemblyname" name="modulename" />
<httpmodules>

No hay comentarios:

Publicar un comentario