【发布时间】:2014-10-15 14:10:00
【问题描述】:
在 c# 中,我可以为 SSL3 或 TLS 设置静态值,例如
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
或者:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
但是(我相信)这会影响我应用程序中所有未来的 HttpWebRequest 对象。
有没有办法为给定的 HttpWebRequest 或至少为给定的 URI 设置它?
注意我已经看到了:
Uri uri = new Uri(url);
ServicePoint sp = ServicePointManager.FindServicePoint(uri);
但 ServicePoint 没有 SecurityProtocol 属性。
目前我想我必须在创建新的 HttpWebRequest 之前设置静态全局属性。
这感觉不对,也意味着:
- 我必须确保多个线程不会同时执行此操作。
- 我不确定该设置在什么时候被“使用”(即,当我调用 webRequest.GetResponse() 时,ServicePointManager.SecurityProtocol 是否被访问并绑定到该 URI?)。
【问题讨论】:
标签: c# ssl httpwebrequest