C#WebClient HTTPS身份验证策略

时间:2010-11-22 14:42:43

标签: c# https

全部 -

我正在使用C#的WebClient类通过https访问远程服务器上的资源。我感兴趣的资源是远程服务器上的文件。我正在使用以下调用来访问该文件:

WebClient client = new WebClient();
client.DownloadData("https://someuri/file.txt");

当调用上面的代码时,我得到一个System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. 我已通过IE手动访问该网站并添加了证书。作为受信任的颁发者,可以在IE中浏览资源而不会出现问题。 C#不使用标准的Windows证书存储区吗?还是我必须自己编写CertificatePolicy?我真的很想使用内置的身份验证算法。

提前致谢。

2 个答案:

答案 0 :(得分:1)

为了使其正常工作,您不能只接受浏览器中的结束证书。您必须使用cmd:mmc控制台将证书加载到计算机信任存储区中,而不仅仅是用户信任存储区。

答案 1 :(得分:0)

您是否通过ASP.Net运行此代码?如果是这样,您可能必须安装本地计算机的证书,因为您为登录安装的证书不能被ASP.net使用