Manipulation de l'en-tête HTTP dans WCF avant l'authentification HTTP dans HttpBinding
-
03-07-2019 - |
Question
Cela concerne cette question
J'héberge ce service WCF dans un hôte de service personnalisé. IIS n'est pas une option.
Existe-t-il un moyen d’injecter un HTTP "Authentifier"? en-tête dans la pile de serveurs (si elle manque) au début du processus de demande, de sorte qu'un utilisateur par défaut puisse être transmis au processus d'authentification / autorisation mis en place pour les demandes anonymes?
J'ai besoin du serveur pour l'injecter à la réception - avant tout traitement WCF ...
Je suis presque sûr que je peux le faire avec un BindingElement personnalisé ou en étendant WebHttpBinding, mais des exemples ou des indications seraient grandement appréciés. Je ne trouve aucun exemple de manipulation précoce d’en-tête (pré-authentification) dans WCF.
La solution
En implémentant un IDispatchMessageInspector, vous pouvez vous connecter au serveur du pipeline; et manipuler des messages.
Dans la méthode AfterReceiveRequest, vous pouvez facilement ajouter à Request.Headers.
Entourez-le d'un attribut de comportement et appliquez-le à votre service.
Autres conseils
Je taperais ceci, mais c’est beaucoup. Voici donc une bonne référence.
Le billet de blog d'Avner Kashtandécrit ce que je "pense". vous cherchez. Espérons que cela aide!