Question

Quand je me déployé WCF Data Services à la production d'hébergement j'ai commencé à obtenir l'erreur suivante (ou similaires, selon lesquelles les régimes d'auth sont actifs):

  

IIS systèmes d'authentification spécifiés   'Basic, Anonymous', mais la liaison   ne supporte que la spécification d'exactement   un système d'authentification. Valide   systèmes d'authentification sont Digest,   Negotiate, NTLM, Basic ou Anonymous.   Modifiez les paramètres IIS de sorte que seule une   système d'authentification unique est utilisé.

Apparemment WCF Data Services (WCF en général?) Ne peut pas gérer avoir plus d'une fois schéma d'authentification actif.

OK, donc je suis conscient que je peux désactiver tout-mais-un système d'authentification sur l'application Web via le panneau de commande IIS .... via une demande d'assistance !!

Y at-il un moyen de spécifier un système d'authentification unique sur un niveau par service dans le 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 ne met pas en œuvre un [ServiceContract] donc vous ne pouvez pas y faire référence dans le <service><endpoint> ... que je suppose serait nécessaire pour changer sa configuration via XML.

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

Était-ce utile?

La solution

Tout d'abord, il est possible de configurer les services de données sur le fichier de configuration Web. Le contrat utilisé par le DataService est appelé System.Data.Services.IRequestHandler.

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

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.

En second lieu pour activer ou méthodes d'authentification désactivées pour un service spécifique dans IIS, vous pouvez faire ce qui suit:

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 allez dans Fichier onglet Sécurité et a choisi le bouton Modifier dans la zone de groupe authentification et le contrôle d'accès. après qu'il est tout comme la mise en place de la sécurité du répertoire dans IIS.

En tant que dernière suggestion selon des tirs de la difficulté à se il est important de permettre aux WCF disgnostics pendant que vous configurent à l'aide de la configuration xml, en cours d'écriture dans WCF, Service d'enregistrement des données est aussi par WCF est riche et très instructif.

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

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

laissez-moi savoir comment les choses se passe.

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 les autres types d'authentification s'il vous plaît vérifier la bibliothèque MSDN pour des exemples

Scénarios communs pour la sécurité

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