Bonjour à tous,
A partir d’un programme en C#, je cherche à accéder à un webservice Java / Xfire.
J’utilise WCF en framework 3.5
La difficulté, c’est que je dois utiliser un certificat pour signer le message mais pas pour crypter le message ou le transport (SSL).
Dans la configuraton, si je remplace <security mode="None"> par <security mode="Message">, le message est crypté ce qui n'est pas le but!.
De quelle façon puis je rajouter la signature seulement ?
Ci-dessous le fichier de configuration et l’appel au web service.
D’avance merci.
Voici le fichier de configuration:
Voici le code de l’appel au Web service:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <configuration> <system.serviceModel> <bindings> <wsHttpBinding> <binding name="AppelWSHttpBinding" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"> <readerQuotas ( )/> <security mode="None"> <transport clientCredentialType="None" proxyCredentialType="None" realm="" /> <message clientCredentialType="None" /> </security> </binding> </wsHttpBinding> </bindings> <behaviors> <endpointBehaviors> <behavior name="NewBehavior"> <clientCredentials> <clientCertificate storeLocation="CurrentUser" ( )/> </clientCredentials> </behavior> </endpointBehaviors> </behaviors> <client> <endpoint address="http://url.ws.adresse/AppelWS" behaviorConfiguration="NewBehavior" binding="wsHttpBinding" bindingConfiguration="AppelWSHttpBinding" contract="AppelWSPortType" name="AppelWSHttpPort" > <identity> <dns value="Test"/> </identity> </endpoint> </client> </system.serviceModel> </configuration>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ( ) using System.ServiceModel; using System.Security.Cryptography.X509Certificates; ( ) AppelWSRequest RLPRequest = new AppelWSRequest(); ( ) System.ServiceModel.ChannelFactory<AppelWSPortType> myChannelFactory = null; AppelWSPortType myService; myChannelFactory = new System.ServiceModel.ChannelFactory<AppelWSPortType>("AppelWSHttpPort") myService = myChannelFactory.CreateChannel(); ( ) Appel du web service par myService.AppelWS
Partager