WebHttpBinding avec HTTPS et authentification avec UserNamepPasswordValidator hébergé dans IIS lorsque

StackOverflow https://stackoverflow.com/questions/6354787

  •  28-10-2019
  •  | 
  •  

Question

Je suis en train de mettre en place un service WCF hébergé dans IIS qui expose un point final qui agit comme un service REST produisant des données JSON, et je veux utiliser le protocole HTTPS. Je veux prendre soin moi-même de l'authentification de l'utilisateur à l'aide de UserNamePasswordValidator, puisque les utilisateurs sont stockés dans une base de données.

En ce moment je suis sur un WebHttpBinding pour atteindre le REST plénitude. Mon problème commence lorsque je tente de activer HTTPS (réglage du mode de sécurité des transports). J'ai un certificat SSL côté serveur (auto-signé pour l'instant), de sorte que c'est tout bon, mais je ne sais pas comment configurer le clientCredentialType de transport de la liaison, de sorte que les pouvoirs sont transmis à ma mise en œuvre de UserNamePasswordValidator.

J'ai googlé beaucoup, mais ne peut pas sembler trouver une bonne chose. Si je comprends correctement IIS poignées l'authentification avant WCF et il n'y a rien à faire à ce sujet? Je préfère vraiment ne pas utiliser un fournisseur d'appartenances ASP.Net, mais peut-être est une approche ou est-il une autre façon?

Merci!

Edit: Trouvé cette . Pas vraiment ce que j'espérais ...

Était-ce utile?

La solution 2

Après beaucoup de googleing autour J'ai trouvé quelques solutions possibles.

La méthode recommandée pour résoudre l'authentification avec les services RESTful WCF hébergés dans IIS semble être à utiliser des jetons. Que ce soit avec l'aide d'une mise en œuvre d'un tiers de OAuth ou de mettre en œuvre quelque chose que votre auto . Cependant, cela va me donner quelques problèmes avec mon point final NetTcp, et je ne sera probablement pas en mesure d'utiliser la même mise en œuvre pour les deux points de terminaison (depuis que je vais devoir faire un peu de jeton de validation sur les appels entrants via le point final de webhttp)

La solution donnée par Ladislav Mrnka semble être valable aussi bien.

Autres conseils

Vous ne pouvez pas utiliser les informations d'identification de UserName - qui est l'authentification au niveau des messages par tête SOAP mais l'échange de données JSON n'a pas cette tête. Essayez d'informations d'identification Basic de configuration dans l'élément de transport (= authentification de niveau transport). Il devrait travailler avec validateur de mot de passe personnalisé depuis .NET 3.5 . Vous devrez passer en-tête HTTP valide pour l'authentification de base pour authentifier avec succès.

Edit:

Je n'ai pas testé avec IIS donc il peut y avoir quelques problèmes, car l'authentification de déclenchement IIS avant le validateur personnalisé est exécuté. Dans ce cas, vous aurez besoin personnalisée Module HTTP pour l'authentification .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top