如何获得System.Web.HttpWebRequest对象以使用SSL 2.0?

时间:2008-10-03 23:00:31

标签: c# .net ssl httpwebrequest

我不知道我是否掌握了很好地表达这个问题所需的所有信息,所以请耐心等待。

我有一个受自签名SSL证书保护的本地网页(本地意义为192.168。*)。我正在尝试使用System.Net.HttpWebRequest对象访问此页面,但我遇到了一个奇怪的问题。

如果在Internet Explorer中访问此页面并关闭“使用SSL 2.0”选项,浏览器将返回错误,就好像它无法建立连接一样。 (换句话说,浏览器连接错误,而不是服务器发送的错误。)如果打开“使用SSL 2.0”选项,页面工作正常,您会得到标准警告,这是一个自签名证书,你想继续等吗(奇怪的是,Firefox,据说没有打开SSL 2.0,工作得很好。)

现在我的问题是我正在尝试使用HttpWebRequest对象访问此页面,并且它返回的错误是连接意外关闭,就像关闭“使用SSL 2.0”时IE抛出的错误一样。 (我已经有代码来忽略它是一个自签名证书的事实,但它甚至没有达到那么远。)

在发出请求时,如何让System.Net.HttpWebRequest获得“使用SSL 2.0”?

1 个答案:

答案 0 :(得分:16)

我在处理Ssl3时遇到过这个问题,虽然我不确定相同的建议是否适用于SSL2?

要解决此问题,我在安全协议上设置了Ssl3标志,如下所示:

  

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;

查看这些链接了解更多详情:

system.net.servicepointmanager.securityprotocol on MSDN

security protocol enumeration on MSDN

如果你很幸运,他们可能会指出你正确的方向:)