2009-07-29 4 views
0

Je veux authentifier un client tout en consommant un service Web. Je vois une propriété exposée dans le Client appelée ClientCredential dans laquelle nous pouvons passer un nom d'utilisateur et un mot de passe. Comment puis-je transmettre cette information à mon service Web WCF et comment puis-je authentifier l'ID utilisateur et le mot de passe?Comment authentifier un client tout en consommant le service Web WCF?

Répondre

0

Si vous voulez utiliser le ClientCredential avec nom d'utilisateur/mot de passe, vous devez configurer que du côté client app.config comme celui-ci - soit utiliser le transport ou la sécurité des messages, selon qui fonctionne pour vous, puis spécifiez

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="UserNameSecurity"> 
      <security mode="Message"> 
      <message clientCredentialType="UserName"/> 
      </security> 
     </binding> 
     </basicHttpBinding> 

et vous devez utiliser cette configuration de liaison « de UserNameSecurity » dans votre point final sur le client:

<client> 
     <endpoint address="http://localhost:8888/MyService" 
       binding="basicHttpBinding" bindingConfiguration="UserNameSecurity" 
       contract="IMyService" /> 

du côté du serveur, vous devez définir comment authentifier l'utilisateur - soit à l'aide de Windows (active Directory Domain), ou en utilisant l'AS les fournisseurs de membres de P.NET (et leur base de données de l'utilisateur associé):

<system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="Default"> 
      <serviceCredentials> 
      <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"/> 
      </serviceCredentials> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

Dans ce cas, votre nom d'utilisateur/mot de passe seront vérifiés par rapport à la base de données des membres ASP.NET. Si tout cela se fait sur un intranet, en interne dans une entreprise, j'utiliserais plutôt la sécurité intégrée de Windows tout autour - c'est beaucoup plus facile à installer et à utiliser, et plus fiable et sécurisé. Mais cela ne fonctionne que dans l'entreprise, à l'intérieur des pare-feu de l'entreprise.

Marc

Questions connexes