2010-07-29 7 views
0

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. :)

Répondre

0

Très bien, solution facile.

Enlever la section et mettre immédiatement ce qui suit en dessous de la section. Ensuite, il suffit de créer un dossier appelé "Secure" et de mettre les services souhaités, ainsi que leurs interfaces, dans ce dossier.

Peut-être que j'aurais dû faire un peu plus d'enquête avant de poster ma question ici.

Questions connexes