Comment puis-je obtenir des informations d'identification IE à utiliser dans mon code?
-
09-09-2019 - |
Question
Je développe actuellement un plugin IE en utilisant SpicIE .
Ce plugin fait un peu de grattage Web similaire à l'exemple affiché sur MSDN:
WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Stream dataStream = response.GetResponseStream ();
StreamReader reader = new StreamReader (dataStream);
string responseFromServer = reader.ReadToEnd ();
reader.Close ();
dataStream.Close ();
response.Close ();
Cependant, quand je lance ce code je reçois le message d'erreur suivant:
Le serveur distant a renvoyé une erreur:. (407) Authentification proxy requise
Je travaille actuellement derrière un serveur proxy et utilisé le NetworkCredential classe pour fournir manuellement mes informations d'identification réseau
request.Credentials = new System.Net.NetworkCredential("name", "password", "domain");
mais je reçois toujours la même erreur.
Même si mon problème est résolu, je sais que certains utilisateurs du plug-in sera derrière un serveur proxy.
Je veux savoir comment je peux obtenir des informations d'identification IE et l'utiliser dans mon code pour l'assigner à request.Credentials .
Peut-être quelque chose comme ceci:
request.Credentials = IE.DefaultCredentials;
La solution
vous définissez les informations d'identification pour site , mais vous avez besoin d'identification pour le proxy .
Définir request.Proxy.Credentials
.
(En outre, utiliser des instructions using
pour la réponse / flux / lecteur plutôt que de les fermer manuellement, sinon ils fuite lorsqu'une exception est levée.)
EDIT: Par exemple, pour utiliser ainsi les informations d'identification par défaut du proxy:
request.Proxy.Credentials = CredentialCache.DefaultCredentials;