Bonjour,
Je dois m’authentifier sur le webservice de mon client en SOAP SSL. J’ai donc récupéré le WSDL et j’ai créé un proxy.
L’exemple de connexion qui m’est fourni dans la doc du ws est en php. Le username et le password sont passés en clair dans le header.
J’ai ajouté cette méthode dans le proxy. Via fiddler, je parviens à récupérer les crédentials si je bascule les appels en http.
D’après mes recherches, le process n’est pas le même en https. Il faudrait passer par WSE en ajoutant la référence Microsoft.Web.Services2.dll.
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 protected override System.Net.WebRequest GetWebRequest(Uri uri) { System.Net.HttpWebRequest request; request = (System.Net.HttpWebRequest)base.GetWebRequest(uri); if (PreAuthenticate) { System.Net.NetworkCredential networkCredentials =this.Credentials.GetCredential(uri, "Basic"); if (networkCredentials != null) { byte[] credentialBuffer = new System.Text.UTF8Encoding().GetBytes(networkCredentials.UserName + ":" + networkCredentials.Password); request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(credentialBuffer); } else { throw new ApplicationException("No network credentials"); } } return request; }
J’ai une ébauche des modifications mais avant d’aller plus loin, quelqu’un a-t-il déjà été confronté à l’authentification webservice en https avec les paramètres dans le header ?
Merci d’avance pour vos conseils.
Partager