173 votes

HttpWebRequest avec authentification de base

J'essaie de passer par une demande d'authentification qui imite la "demande d'authentification de base" que nous avons l'habitude de voir lorsque nous configurons IIS pour ce comportement.

L'URL est le suivant : https://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC=22&SC=1&ST=2
(avertissement : https !)

Ce serveur fonctionne sous UNIX et Java comme serveur d'application.

Voici le code que j'utilise pour me connecter à ce serveur :

CookieContainer myContainer = new CookieContainer();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC=22&SC=1&ST=2");
request.Credentials = new NetworkCredential(xxx,xxx);
request.CookieContainer = myContainer;
request.PreAuthenticate = true;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

(J'ai copié ceci d'un autre post sur ce site). Mais je reçois cette réponse du serveur :

La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors d'un un envoi.

Je pense avoir essayé toutes les tâches possibles que mes connaissances en C# peuvent m'offrir, mais rien...

0voto

Caveman Points 469

Voici comment réaliser une chaîne Http Basic Auth en C#

string username = "user";
string password = "pass";            
var basicAuthBytes = Encoding.GetEncoding("ISO-8859-1").GetBytes($"{username}:{password}");
var authHeaderValue = $"Basic {System.Convert.ToBase64String(basicAuthBytes)}";

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X