This question already has answers here:
Set the SecurityProtocol (Ssl3 or TLS) on the .net HttpWebRequest per request
(9个答案)
6年前关闭。
在C#中,我能够为SSL3或TLS设置静态值,例如
或者:
但是(我相信)这将影响我的应用程序中所有将来的HttpWebRequest对象。
有没有办法为给定的HttpWebRequest或至少给定的URI设置它?
注意我已经看到了:
但是ServicePoint没有SecurityProtocol属性。
目前,我想我将不得不在创建新的HttpWebRequest之前设置静态全局属性。
这感觉不对,这还意味着:
我必须确保多个线程不会同时执行此操作。 我不确定在什么时候使用了此设置(即当我调用webRequest.GetResponse()时访问ServicePointManager.SecurityProtocol并将其绑定(bind)到该URI吗?)。
(9个答案)
6年前关闭。
在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之前设置静态全局属性。
这感觉不对,这还意味着:
最佳答案
意识到这一点已在这里介绍:
How to use SSL3 instead of TLS in a particular HttpWebRequest?
和这里:
Set the SecurityProtocol (Ssl3 or TLS) on the .net HttpWebRequest per request
证实我的恐惧。有些用户似乎正在拆分一个单独的应用程序域来解决此问题。我仍然认为,如果在定义将绑定(bind)到特定Web请求对象的那一点定义得好,则可以通过一些线程锁定来实现。
关于c# - 为ServicePointManager.SecurityProtocol的每个请求值设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26384692/
10-13 08:28