J'ai un projet de service WCF dans lequel j'ai implémenté l'authentification de base personnalisée en suivant le guidelines here, et tout fonctionne très bien! Cependant, je ne peux pas trouver s'il existe un moyen de refuser aux utilisateurs non authentifiés d'accéder uniquement à des points de terminaison spécifiques.WCF refuse les utilisateurs non authentifiés sur certains points d'extrémité
Dans mon projet, j'ai environ 5 points de terminaison et je veux seulement que les utilisateurs soient authentifiés par rapport à quelques uns d'entre eux. Les autres, je veux autoriser l'accès anonyme.
Mon web.config (extrait) est en tant que tel:
<system.web>
<customErrors mode="Off"/>
<authentication mode="None"/>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</assemblies>
</compilation>
<httpModules>
<add name="CustomBasicAuthentication" type="WebServices.Auth.CustomBasicAuthenticationModule, WebServices"/>
</httpModules>
<authorization>
<deny users="?"/>
</authorization>
<membership defaultProvider="defaultProvider">
<providers>
<add name="defaultProvider" type="WebServices.Auth.WSMembershipProvider, WebServices"/>
</providers>
</membership>
</system.web>
Les critères d'évaluation sont assez simple en tant que tels:
<service name="WebServices.Distance" behaviorConfiguration="defaultBehavior">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="defaultBinding" contract="WebServices.IDistance" behaviorConfiguration="rest" />
</service>
.... more endpoints below here ....
Ainsi, au lieu de frapper tous les points d'extrémité, puis-je dire de nier non authentifié utilisateurs pour le point de terminaison n ° 1 (ou par nom, ou autre).
J'espère que cela a du sens. Si non, n'hésitez pas à snark. :)