使用SSL的HttpWebRequest?

3

我之前使用过HttpWebRequests在HTTPS网站上提交数据,但与普通的HTTP Post没有任何区别。

不知道是否有什么技巧可以确保正确地完成这项工作?

4个回答

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博客的评论,它将强制始终接受客户端证书。
您还可以在该委托中验证证书。
很酷!

2

1

我认为https是一个托管问题,您必须使用您的证书(或证书链)配置密钥库,设置您的ssl/tls,映射您的dns设置(也适用于http),然后继续进行。我不认为会话/传输层问题会影响应用程序。

然而,我们曾经遇到过一种情况,需要检测智能卡的拔出并关闭会话。为了做到这一点,我们必须检查每个请求的SSO令牌并检查其有效性。这更多与架构的智能卡方面有关,而不是https。


0

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

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


如果它是一个 SSL 请求,我们该如何验证证书? - Joel Coehoorn
.NET框架(或HTTP子层)将为您处理SSL证书,但是如果您需要手动验证证书,则可以在浏览器中加载请求并查看证书。 - Ady

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接