Bonjour,
Je rencontre un soucis pour me connecter à un WebService via un HttpWebRequest. J'ai systématiquement une erreur 401. Dans un navigateur, tout se passe bien une fois saisi le login et le mot de passe.
La documentation me dit ceci :
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 private void TestGeoportail(string user, string password) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://gpp3-wxs.ign.fr/02tydhfeeh0oz0jhy4kacbil/wmts?SERVICE=WMTS&VERSION=1.0.0&FORMAT=image/jpeg&LAYER=ORTHOIMAGERY.ORTHOPHOTOS&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX=16&TILEROW=22586&TILECOL=33145"); request.KeepAlive = true; request.AllowAutoRedirect = true; request.Referer = "http://localhost/"; request.PreAuthenticate = true; NetworkCredential nc = new NetworkCredential(user, password); CredentialCache cc = new CredentialCache(); cc.Add("gpp3-wxs.ign.fr", 443, "Basic", nc); request.Credentials = cc; try { WebResponse response = request.GetResponse(); Stream stream = response.GetResponseStream(); } catch (WebException e) { } return; }
J'ai essayé plein de choses au niveau du credential, mais rien à faire. Mes compétences dans le domaine http sont plutôt limitées.Les clefs login/password sont authentifiées par le protocole HTTP AuthBasic qui consiste à
envoyer dans un en-tête d'authentification l'identifiant et le mot de passe cryptés de l'utilisateur.
Pour utiliser ce type de clef et accéder aux services, il est nécessaire d'être en possession de
l'identifiant/mot de passe associé à la clef. Il est recommandé d'utiliser le protocole HTTPS pour
ce type HTTPS.
En cas d'erreur d'authentification, une erreur HTTP 403 est retournée. Une erreur 401 peut-être
retournée lorsque il s'agit d'une clef login/password et que l'en-tête d'authentification est absent.
Dans ce cas, le navigateur affiche une fenêtre permettant la saisie de ces informations.
Mon sujet de départ, pour plus d'information, est ici.
Une idée du comment faire ?
Merci d'avance.
Partager