2010-08-05 13 views
4

Tous,En utilisant <urlmon.h> et URLDownloadToFile pour obtenir HTTPS Ressources Web

Je fais une programmation qui sera en mesure de télécharger du contenu à partir de différents sites et hors de ma network.To locale ce faire, je dois utiliser les libs et C++ pour des raisons de compatibilité. Jusqu'à présent, j'ai réussi à accéder à une page HTTP normale et à une page HTTPS sur le Web. Exemple:

HRESULT res = URLDownloadToFile(NULL, 
      LPCTSTR(CString("https://www.google.com/")), 
      LPCTSTR(CString("websitecontent.txt")), 
      0, 
      NULL); 

Il y a deux choses que je suis incapable de le faire: 1) accéder à une ressource réseau local qui utilise un cert CA local.

2) Accéder à une ressource de réseau local qui utilise un certificat CA local et demande l'authentification du client via un certificat client.

Dans le premier cas, je pense que Windows interdit la connexion, car il ne figure pas dans une liste des autorités de certification de confiance. Dans la seconde, je pense que je dois trouver un moyen d'intégrer un client cert/clé privée dans l'appel à URLDownloadToFile, mais je ne sais pas comment y parvenir. De plus, je devrais aussi dire à Windows de faire confiance à l'AC locale.

Toute aide serait appréciée.

Répondre

1

Je pense que vous devez vérifier que la chaîne de certificats est approuvée dans Internet Explorer.

Mieux, utilisez libcurl :)

+0

On dirait que quelque chose de vraiment bien, mais je reçois aussi le sens ce n'est pas une installation par défaut sous Windows. Une partie du problème est que j'ai besoin d'utiliser des libs qui me permettent de faire ce fichier .exe sur n'importe quelle machine winxp et plus tard et de le faire fonctionner. – themaestro

+0

Vous pouvez peut-être lier statiquement libcurl à votre application. – carlsborg