Manipolazione dell'intestazione HTTP in WCF prima dell'autenticazione HTTP in HttpBinding
-
03-07-2019 - |
Domanda
Questo è in relazione a questa domanda
Sto ospitando questo servizio WCF in un host di servizi personalizzato. IIS non è un'opzione.
C'è un modo per iniettare un HTTP " Authenticate " intestazione nello stack del server (se manca) all'inizio del processo di richiesta - in modo tale che un utente predefinito possa essere passato al processo di autenticazione / autorizzazione che ho in atto per richieste anonime?
Ho bisogno che il SERVER lo inietti sul lato ricevente - prima di un'ulteriore elaborazione WCF ...
Sono abbastanza sicuro di poterlo fare con un BindingElement personalizzato o estendendo WebHttpBinding, ma qualsiasi esempio o guida sarebbe molto apprezzato. Non riesco a trovare alcun esempio di manipolazione precoce dell'intestazione (pre-autenticazione) in WCF.
Soluzione
Implementando un IDispatchMessageInspector è possibile collegarsi al lato server della pipeline; e manipolare i messaggi.
Nel metodo AfterReceiveRequest puoi aggiungere a Request.Headers abbastanza felicemente.
Avvolgilo con un attributo di comportamento e applicalo al tuo servizio.
Altri suggerimenti
Lo scriverei, ma è molto. Quindi ecco un buon riferimento.
Il post sul blog di Avner Kashtan delinea ciò che io "penso" stai cercando. Speriamo che questo aiuti!