Qual è la differenza tra l'utilizzo di MessageHandler e un filtro per verificare la presenza di una chiave API nell'intestazione della richiesta per un progetto API Web MVC.MessageHandlers vs Filters in asp.net mvc web api project
vedo che c'è un esempio ben delineata di un messageHandler solo per tale scopo in http://www.asp.net/web-api/overview/working-with-http/http-message-handlers
esempio
GlobalConfiguration.Configuration.MessageHandlers.Add(new ApiKeyHandler());
ma sembra che io possa fare la stessa cosa usando un filtro pure.
GlobalConfiguration.Configuration.Filters.Add(new ApiKeyFilter());
Supponendo ApiKeyFilter e ApiKeyHandler sia basta guardare l'intestazione della richiesta e verificare la presenza di una chiave API, che parte è più efficiente? Qual è la differenza?
se voglio solo ispezionare richiesta e risposta, ad esempio solo registrando il carico utile di richiesta e risposta, quale dovrebbe essere preferito? perché i filtri e i gestori possono gestirlo. Gli handler possono anche essere specifici per rotta. Quindi, la "sicurezza relativa alle cose" è l'unico elemento di differenziazione quando si tratta dei casi d'uso di ciascuno? –
Riguarda l'ambito e l'ordine di esecuzione. Dato che i gestori di messaggi sembrano andare via in seguito, preferisco usare il middleware Katana per la registrazione. – leastprivilege
grazie, sono ancora confuso. Solo per avere le mie nozioni di base, supponiamo che per ora non abbiamo katana. Se utilizzo i filtri per la registrazione, ci saranno degli svantaggi. Capisco che per le cose che devono essere eseguite i primi handler dovrebbero essere usati. ma suppongo di non avere alcun requisito di questo tipo con la registrazione, che è una scelta migliore (gestori o filtri). La registrazione è solo un esempio di citazione per la discussione. grazie ancora –