2009-10-27 5 views
0

Un programme .NET WCF Client peut-il appeler un service Web .asmx existant (fourni par le fournisseur) qui utilise WS-Security pour la connexion?.NET WCF appelant .asmx avec WS-Security

Dans notre cas, le fournisseur a fourni un service Web .asmx avec WS-Security. Nous allons essayer d'utiliser SOAPUI et WCFTestHarness ou WCFTestClient pour y accéder en premier. Je préférerais utiliser WCF si possible.

Merci,

Neal Walters

Répondre

3

Oui, tout à fait. WCF a un grand soutien pour WS-Security. Quels types de jetons sont attendus par le service pour l'authentification? En supposant qu'il ne s'agit que d'un nom d'utilisateur/mot de passe, vous devez simplement configurer votre liaison pour utiliser la sécurité TransportWithMessageCredential lorsque le type d'informations d'identification client est UserName (remarque: vous devez utiliser HTTPS pour cela). Tout d'abord, définir une reliure comme ceci:

<basicHttpBinding> 
    <binding name=“MyBinding”> 
     <security mode=“TransportWithMessageCredential”> 
      <transport clientCredentialType=“None” /> 
      <message clientCredentialType=“UserName” /> 
     </security> 
    </binding> 
</basicHttpBinding> 

Ensuite, configurez votre terminal pour utiliser cette liaison:

<endpoint address="https://somewhere.com/TargetService.asmx" binding="basicHttpBinding" bindingConfiguration="MyBinding" /> 

Ensuite, lors de l'exécution, en supposant que vous utilisez un proxy généré (c.-à-ClientBase) vous suffit de définir les informations d'identification du client comme ceci:

TargetServiceClient client = new TargetServiceClient(); 
client.Credentials.UserName.UserName = "myusername"; 
client.Credentials.UserName.Password = "mypassword"; 
+0

WCF prend en charge à peu près toutes les normes imaginables WS- * :-) –

+0

de @marc_s Et si elle ne le fait pas, vous pouvez l'ajouter sur vous-même. Je m'apprécie un WCF. :) –

Questions connexes