Pregunta

Tengo un IHttpModule personalizado que realiza autenticación (en Facebook, Myspace, etc.). Provoca un evento que puede manejarse en la instancia de HttpApplication con detalles sobre el usuario. Es muy parecido al evento OnAuthenticate que genera el FormsAuthenticationModule.

De la clase HttpApplication, ¿dónde debo colocar esta información que obtengo para que esté disponible para la tubería ASP.NET MVC? Solía ??pegarlo en el diccionario Context.Items. Pero parece que con el (mucho más amigable) HttpContextBase, quiero ponerlo allí para que sea fácil de burlar / inyectar y no estoy usando HttpContext.Current en mi controlador.

Entonces, básicamente, ¿cómo obtengo mejor los datos de un IHttpModule en el contexto MVC? Lo mejor que puedo obtener de un vistazo rápido es crear un IControllerFactory personalizado para extraer datos del HttpContext y agregarlo al RequestContext. ¿Respondí mi propia pregunta? ¿Hay alguna forma menos intrusiva (como un evento que puedo manejar)?

¿Fue útil?

Solución

Supongo que su módulo se ejecuta antes de enrutamiento. Si es así, es demasiado pronto para agregarlo directamente al RequestContext.

Intentaría agregarlo a HttpContext.Current.Items. El enrutamiento envolverá ese HttpContext con un HttpContextBase. Entonces debería poder acceder desde cualquier lugar a través de RequestContext.HttpContext.Items.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top