2012-07-03 10 views
6

¿Existe alguna forma práctica de acceder a los atributos que decoran un controlador o acción desde un Manejador de mensajes/Mando delegante?¿Es posible acceder a los atributos de Controlador/Acción desde un Manejador de mensajes?

De the diagram en Pedro Felix's blog entry, parece que los manejadores de mensajes están en una fase temprana y la información no estará disponible hasta que se ejecute Controller Handler Message Handler. ¿Correcto?

Sobre mi caso de uso:
Estoy trabajando con el modelo de identidad Thinktecture, y sería útil ser capaz de buscar el atributo AllowAnonymous en el AuthenticationHandler.

Respuesta

2

Por naturaleza, este parece ser el lugar equivocado para implementarlo. Como ha notado, los manejadores de mensajes funcionan en todas las solicitudes y respuestas. Si dependes de un atributo, esto sería, naturalmente, un filtro. Entonces te sugiero que sigas esa ruta.

De hecho, en el controlador no se puede asumir que vaya a un ApiController o una acción. Los manipuladores se pueden usar por igual en los clientes.

+1

Gracias por la respuesta +1. Estoy de acuerdo con tus observaciones arquitectónicas de todo corazón; pero a veces juegas la mano que te reparten. El 'AuthenticationHandler' de IdentityModel se implementa como un Manejador de mensajes. Un token no válido detiene el procesamiento y devuelve un HTTP 401. Esto es perfecto para cada situación ... ** excepto ** para cuando desee una exención para el método que emite tokens válidos (suponiendo que uno se emite a sí mismo, en lugar de usar un tercero servicio de fiesta). – EBarr

+0

Lo mejor es hablar con Dominick: está muy abierto a sugerencias cuando se ajuste al producto. Todavía no lo he analizado en profundidad, pero necesito retomarlo pronto. – Aliostad

+0

De acuerdo, hemos estado yendo y viniendo, y le estoy escribiendo otro correo electrónico sobre el tema. Estaba buscando una alternativa para hacer que la integración de los cambios fuera menos perjudicial. Por cierto ... comenzó a aparecer en SO un poco - http://stackoverflow.com/users/672453/leastprivilege – EBarr

Cuestiones relacionadas