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";
WCF prend en charge à peu près toutes les normes imaginables WS- * :-) –
de @marc_s Et si elle ne le fait pas, vous pouvez l'ajouter sur vous-même. Je m'apprécie un WCF. :) –