J'essaie de passer par une demande d'authentification qui imite la "demande d'authentification de base" que nous avons l'habitude de voir lors de la configuration d'IIS pour ce comportement.
L'URL est: https://telematicoprova.agenziadogane.it/TelematicoServiziDiUtilitaWeb/ServiziDiUtilitaAutServlet?UC=22&SC=1&ST=2
(avertissement: https!)
Ce serveur fonctionne sous UNIX et Java en tant que serveur d'applications.
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 à partir d'un autre article 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 envoi.
Je pense que j'ai essayé toutes les tâches possibles que mes connaissances sur C # ont à m'offrir, mais rien ...
la source
Réponses:
Vous pouvez également simplement ajouter vous-même l'en-tête d'autorisation.
Créez simplement le nom "Authorization" et la valeur "Basic BASE64 ({USERNAME: PASSWORD})"
Éditer
Passage du codage UTF-8 à ISO 8859-1 par Quel codage dois-je utiliser pour l'authentification de base HTTP? et le commentaire de Jeroen.
la source
J'ai enfin compris!
et c'est
GetCredential()
YAY!
la source
Si vous pouvez utiliser la
WebClient
classe, l'utilisation de l'authentification de base devient simple:la source
Essaye ça:
la source
Pour ceux qui utilisent RestSharp , il peut échouer lors de l'utilisation de SimpleAuthenticator (probablement en raison de ne pas utiliser ISO-8859-1 en arrière-plan). J'ai réussi à le faire en envoyant explicitement des en-têtes d'authentification de base:
la source
Le code suivant résoudra la réponse json si l'authentification de base et le proxy sont implémentés.Le problème d'hébergement IIS 7.5 sera également résolu.
la source
La spécification peut être lue comme «ISO-8859-1» ou «indéfini». Votre choix. On sait que de nombreux serveurs utilisent ISO-8859-1 (que vous le vouliez ou non) et échoueront lorsque vous enverrez autre chose.
Pour plus d'informations et une proposition pour corriger la situation, voir http://greenbytes.de/tech/webdav/draft-reschke-basicauth-enc-latest.html
la source
La construction suivante ne fonctionnait pas correctement pour moi:
J'ai utilisé à la
CredentialCache
place:Cependant, si vous souhaitez ajouter plusieurs informations d'authentification de base (par exemple, s'il existe une redirection dont vous avez connaissance), vous pouvez utiliser la fonction suivante que j'ai créée:
J'espère que cela aidera quelqu'un à l'avenir.
la source
Tout d'abord, pour moi ServicePointManager.SecurityProtocol = SecurityProtocolType. Tls12 a fonctionné au lieu de Ssl3.
Deuxièmement, j'ai dû envoyer la demande d'authentification de base avec quelques données (form-urlencoded). Voici l'exemple complet qui a parfaitement fonctionné pour moi, après avoir essayé de nombreuses solutions.
Avertissement: Le code ci-dessous est un mélange de solutions trouvées sur ce lien et d'autres liens stackoverflow, merci pour les informations utiles.
la source