2009-08-10 6 views
2

Si je veux explorer un site possédant des certificats SSL, comment puis-je faire?Exploration d'un site sécurisé

Je sais qu'il y a la classe WebClient en C# et HttpWebRequest/HttpWebResponse mais quels changements aurais-je besoin de faire?

Répondre

3

Vous n'avez pas besoin de changer quoi que ce soit, sauf l'URL qui devrait commencer par "https" au lieu de "http".

+0

Correct, c'est pourquoi nous avons le modèle Request.Create(). –

1

ajouter ceci en haut de votre application

ServicePointManager.ServerCertificateValidationCallback += delegate(object sender, X509Certificate certifcate, X509Chain chain, SslPolicyErrors sslPolicyErrors) 
{ 
    return true; 
}; 

Cela fera HttpWebRequest accepter les certificats des serveurs.

+0

-1. Bien qu'il s'agisse d'un hack généralement utilisé pour accepter des certificats auto-signés, il est extrêmement peu sûr et ne devrait être fait que lorsque toutes les autres options ont été essayées et quand les risques (qui sont souvent sévères) sont connus. La meilleure option consiste à installer le certificat du serveur sur la machine effectuant la requête. – Randolpho

+0

Je ne suis pas d'accord sur le -1. Il a dit qu'il devait explorer un site, ce qui signifie télécharger toutes les pages, comme je l'ai lu. Communication avec un ou plusieurs sites connus pour les transactions Je suis totalement d'accord avec vous pour que vous fassiez l'authentification cert appropriée. –

+0

Ne vous mettez pas d'accord sur le -1 non plus. Pourquoi serait-il en train d'explorer quelque chose en quoi il ne croyait pas en premier lieu, et les implications de l'utilisation de WebRequest pour la sécurité sont bien moindres qu'avec un navigateur. – Brandon

Questions connexes