2012-07-03 7 views
6

Esiste un modo pratico per accedere agli attributi che decorano un controller o un'azione da un gestore messaggi/DelegatingHandler?È possibile accedere agli attributi Controller/Azione da un gestore di messaggi?

Da the diagram su Pedro Felix's blog entry, sembra che i gestori di messaggi siano troppo in anticipo nella pipeline e le informazioni non saranno disponibili fino a quando non viene eseguito il gestore messaggi del controllore Dispatcher. Corretta?

Circa il mio caso d'uso:
sto lavorando con il modello di identità Thinktecture, e sarebbe utile per essere in grado di cercare l'attributo AllowAnonymous nel AuthenticationHandler.

risposta

2

Per natura, questo sembra essere il posto sbagliato per implementarlo. Come hai notato, i gestori dei messaggi funzionano su tutte le richieste e le risposte. Se dipendi da un attributo, questo sarebbe naturalmente un filtro. Quindi ti suggerisco di seguire quella strada.

Infatti nel gestore non si può presumere che ci sia un ApiController o un'azione. I gestori possono essere ugualmente utilizzati sui clienti.

+1

Grazie per la risposta +1. Sono d'accordo con le tue osservazioni architettoniche con tutto il cuore; ma a volte giochi la mano che ti viene data. 'AuthenticationHandler' di IdentityModel è implementato come gestore di messaggi. Un token non valido interrompe l'elaborazione e restituisce un HTTP 401. Questo è perfetto per ogni situazione ... ** tranne ** per quando si desidera un'esenzione per il metodo che emette token validi (supponendo che uno stia emettendo automaticamente, invece di usare un terzo servizio di festa). – EBarr

+0

Il migliore è parlare con Dominick - è molto aperto ai suggerimenti quando si adatta al prodotto. Non l'ho ancora guardato in profondità ma ho bisogno di riprenderlo presto. – Aliostad

+0

D'accordo - stiamo andando avanti e indietro, e sto creando un'altra email per lui sull'argomento. Stavo cercando un'alternativa, per rendere l'integrazione delle modifiche meno dirompente. BTW ... ha iniziato a mostrarsi su SO un po '- http://stackoverflow.com/users/672453/leastprivilege – EBarr

Problemi correlati