2010-08-05 82 views
4

所有,使用<urlmon.h>和URLDownloadToFile得到HTTPS Web資源

我在做一個節目,這將是能夠從不同的網站下載內容和關閉我的本地network.To的做到這一點,我必須使用庫和C++出於兼容性原因。到目前爲止,我已經能夠成功訪問一個正常的HTTP頁面,並在網絡上的HTTPS頁面。例如:

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

有兩件事情我不能做的事: 1)訪問使用本地CA證書的本地網絡資源。

2)訪問使用本地CA證書的本地網絡資源,並通過客戶端證書請求客戶端驗證。

在第一種情況下,我認爲windows不允許連接,因爲它不在受信任CA的Windows列表中。

在第二個我想我需要找出一種方法來集成一個客戶端證書/私鑰到URLDownloadToFile的調用,但我不知道如何做到這一點。另外,我還必須告訴Windows相信本地CA.

任何幫助,將不勝感激。

回答

1

我認爲您需要檢查證書鏈在Internet Explorer中是否受信任。

更好,使用libcurl :)

+0

看起來像一些非常好的東西,但我也得到了感覺這不是默認安裝在Windows上。部分問題是我需要使用libs,這會讓我把這個.exe放到任何winxp和後來的機器上,然後讓它工作。 – themaestro 2010-08-06 12:03:33

+0

你也許可以將libcurl靜態鏈接到你的應用程序中。 – carlsborg 2010-08-06 12:48:02