Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HTTPS上的WCF服务(自托管)-获取协商的SSL/TLS协议版本_C#_.net_Wcf_Ssl - Fatal编程技术网

C# HTTPS上的WCF服务(自托管)-获取协商的SSL/TLS协议版本

C# HTTPS上的WCF服务(自托管)-获取协商的SSL/TLS协议版本,c#,.net,wcf,ssl,C#,.net,Wcf,Ssl,出于安全原因,我们希望在服务器的操作系统级别禁用TLS 1.0支持(在下面的SChannel注册表中): 但是由于这个原因,我们不得不在操作系统级别启用TLS1.0 我们现在试图做的是强制在应用程序级别而不是操作系统级别使用TLS1.2 我们的应用程序是客户端服务器,运行在.NET4.5上。 在客户端上,在调用WCF服务之前,我们设置: ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 这确保客户端将使用TLS

出于安全原因,我们希望在服务器的操作系统级别禁用TLS 1.0支持(在下面的SChannel注册表中):

但是由于这个原因,我们不得不在操作系统级别启用TLS1.0

我们现在试图做的是强制在应用程序级别而不是操作系统级别使用TLS1.2

我们的应用程序是客户端服务器,运行在.NET4.5上。 在客户端上,在调用WCF服务之前,我们设置:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
这确保客户端将使用TLS1.2协议发送ClientHello消息

但在服务器上,即自托管WCF服务上,我们看不到如何强制使用TLS1.2。服务器端的SSL/TSL协商基于SChannel注册表,因此设置ServicePointManager.SecurityProtocol不会产生任何效果

我们希望在服务器代码中检查传入的WCF调用,并检查用于该调用的TLS协议,如果该协议小于TLS1.2,则关闭连接


有没有办法获取传入WCF呼叫SSL/TLS协议版本?类似于?

你有没有想过?我也面临同样的挑战。谢谢
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;