2010-03-30 7 views
7

Quand je déployé mon WCF Data Services à la production hébergement j'ai commencé à obtenir l'erreur suivante (ou similaire selon lesquelles les régimes d'auth sont actifs):Comment désactiver les systèmes d'authentification pour WCF Data Services

IIS authentification spécifié schémas 'Basic, Anonymous', mais la liaison prend uniquement en charge la spécification de un schéma d'authentification. Les schémas d'authentification valides sont Digest, Négocier, NTLM, Basic ou Anonyme. Modifiez les paramètres IIS afin que seul un schéma d'authentification unique soit utilisé.

Apparemment, les services de données WCF (WCF en général?) Ne peuvent pas gérer plusieurs schémas d'authentification actifs. OK, donc je suis conscient que je peux désactiver le schéma d'authentification tout-en-un sur l'application web via le panneau de contrôle IIS .... via une demande de support !!

Existe-t-il un moyen de spécifier un schéma d'authentification unique sur un niveau par service dans le fichier web.config?

Je pensais que cela pourrait être aussi simple que de faire un changement à <system.serviceModel> mais ... il se trouve que WCF Data Services ne se configure pas dans la configuration web. Si vous regardez la classe DataService<> il n'implémente pas un [ServiceContract] donc vous ne pouvez pas vous y référer dans le <service><endpoint> ... ce qui je suppose serait nécessaire pour changer sa configuration via XML.

P.S. Notre hôte utilise II6, mais les deux solutions pour IIS6 & IIS7 apprécié.

Répondre

16

Premièrement, il est possible de configurer Data Services sur le fichier de configuration web. Le contrat utilisé par DataService s'appelle System.Data.Services.IRequestHandler.

Voici ce que vous pouvez faire dans le fichier de configuration Web pour le configurer.

Sur l'étiquette de service de l'élément System.ServiceModel ajouter le

<service name="{you service type name including the namespace i.e. myapplication.myservice}"> 
    <endpoint address="" binding="webHttpBinding" contract="System.Data.Services.IRequestHandler"> 
    </endpoint> 
</service> 

Une fois que vous avez que vous pouvez commencer à configurer toutes sortes de chose en utilisant les éléments de configuration standard WCF.

Deuxièmement pour activer ou méthodes d'authentification désactivées pour un service spécifique dans IIS, vous pouvez effectuer les opérations suivantes:

Sur le composant logiciel enfichable dans IIS clic droit votre fichier de service (à savoir yourservice.svc) et cliquez sur Propriétés. Une fois dans les propriétés, accédez à l'onglet Sécurité du fichier et choisissez le bouton Modifier dans la zone de groupe Authentification et contrôle d'accès. après cela, c'est comme la configuration de la sécurité du répertoire dans IIS. Comme dernière suggestion, il est important d'activer les disquettes de wcf pendant que vous le configurez en utilisant la configuration xml, en étant écrit en WCF, la journalisation du service de données est riche et très informative.

vous pouvez en savoir plus à ce sujet sur WCF Administration and Diagnostics

J'espère que je suis en mesure de vous aider avec votre problème

laissez-moi savoir comment les choses va.

Cordialement

Daniel Portella

MISE À JOUR:

Salut Schneider

Pour spécifier le schéma d'authentification dans le fichier XML lire ci-dessous

Pour l'authentification Windows comme exemple

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.serviceModel> 
    <bindings> 
     <webHttpBinding> 
     <binding name="MyBindingName" > 
      <security mode="Transport"> 
      <transport clientCredentialType="Windows" /> 
      </security> 
     </binding> 
     </webHttpBinding> 
    </bindings> 
    <services> 
     <service name="{you service type name including the namespace i.e. myapplication.myservice}"> 
     <endpoint address="" binding="webHttpBinding" bindingConfiguration="MyBindingName" contract="System.Data.Services.IRequestHandler"> 
     </endpoint> 
     </service> 
    </services> 
    </system.serviceModel> 
</configuration> 

Pour d'autres types d'authentification s'il vous plaît vérifier la bibliothèque MSDN pour des exemples

Common Scenarios for security

+0

grâce. la configuration de point de terminaison est utile. maintenant j'ai que je vais chercher un moyen de spécifier le schéma d'autorisation dans le xml ... – Schneider

+0

ajouter une mise à jour ci-dessus l'espoir ti explique comment configurer l'authentification pour le service – dmportella

+0

Si je pouvais, je vous donnerais la prime ..! Merci beaucoup! – Rashack

Questions connexes