HttpWebRequest à l'aide de l'authentification de Base
Je suis en train de passer par une demande d'authentification qui imite le "basic auth demande" nous sommes habitués à 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.
C'est le code que j'ai utiliser pour vous 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();
(Je l'ai copié 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 sur
un envoyer.
Je pense que j'ai essayé chaque tâche possible à ma connaissance de C# a à m'offrir, mais rien...
- Je pense que celui-ci aurait travaillé si vous avait ajouté: demande.UseDefaultCredentials = false;
Vous devez vous connecter pour publier un commentaire.
Vous pouvez aussi ajouter l'en-tête d'autorisation de vous-même.
Suffit de rendre le nom de "Autorisation" et la valeur "de Base BASE64({nom d'utilisateur:MOT de passe})"
Modifier
De commutation de l'encodage UTF-8 ISO 8859-1 par L'encodage que dois-je utiliser pour l'Authentification HTTP de Base? et Jeroen commentaire.
J'ai finalement obtenu!
et c'est
GetCredential()
YAY!
Si vous pouvez utiliser la
WebClient
classe, à l'aide de l'authentification de base est simple:Essayez ceci:
Code suivant permettra de résoudre réponse json si l'Authentification de Base et le Proxy mis en œuvre.Aussi IIS 7.5 Hébergement Problm résoudre.
Pour ceux qui utilisent RestSharp, elle peut échouer lors de l'utilisation de SimpleAuthenticator (peut-être due à la non-utilisation de l'ISO-8859-1 derrière la scène). J'ai réussi à le faire explicitement l'envoi de l'Authentification de Base en-têtes:
La spécification peut être lu comme "ISO-8859-1" ou "indéfini". De votre choix. On sait que de nombreux serveurs d'utiliser ISO-8859-1 (il aime ou pas) et va échouer lorsque vous envoyez quelque chose d'autre.
Pour plus d'informations et une proposition visant à corriger la situation, voir http://greenbytes.de/tech/webdav/draft-reschke-basicauth-enc-latest.html
La suite de la construction ne fonctionnait pas correctement pour moi:
J'ai utilisé
CredentialCache
à la place:Cependant, si vous souhaitez ajouter plusieurs basic auth informations d'identification (par exemple, si il ya de redirection que vous êtes conscient de), vous pouvez utiliser la fonction suivante que j'ai fait:
J'espère que ça aidera quelqu'un à l'avenir.