通过SSL的HttpWebRequest?

时间:2008-10-28 16:50:59

标签: c# .net httpwebrequest

之前我曾使用HttpWebRequests将数据发布到HTTPS网站,而且我从来没有像普通的HTTP Post那样做任何不同的事情。

有没有人知道我是否错过任何技巧以确保这项工作正确完成?

4 个答案:

答案 0 :(得分:4)

经过一番搜索后,如果证书有效,您似乎无需做任何事情。

如果您想自己检查证书,可以这样做:

System.Net.ServicePointManager.ServerCertificateValidationCallback +=
    delegate(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
                            System.Security.Cryptography.X509Certificates.X509Chain chain,
                            System.Net.Security.SslPolicyErrors sslPolicyErrors)
        {
            return true; // **** Always accept
        };

上述代码来自对Rick Stralhs博客的评论,并将强制始终接受客户端证书。

您还可以验证该代表中的证书。

很酷的东西!

答案 1 :(得分:2)

检查认证错误,这是一个常见问题 http://www.west-wind.com/weblog/posts/48909.aspx

答案 2 :(得分:1)

我认为https是一个托管问题,您必须使用您的证书(或证书链)配置密钥库,设置您的ssl / tls,映射您的DNS设置(也为http完成)并继续。我没有看到任何会话/传输层问题应该影响应用程序的原因。

然而,我有一个例子,我们必须检测智能卡删除并关闭会话。为此,我们必须检查每个请求的SSO令牌并检查有效性。这更多地与架构的智能卡方面有关,而不是https。

答案 3 :(得分:0)

HTTPS请求与HTTP相同(仅使用SSL证书)。

但是,您应该手动确保证书没有错误(甚至是警告),否则请求可能会失败。