Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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# 如何确定连接的套接字是否使用IPSec?_C#_Windows_Sockets_Dotnet Httpclient_Ipsec - Fatal编程技术网

C# 如何确定连接的套接字是否使用IPSec?

C# 如何确定连接的套接字是否使用IPSec?,c#,windows,sockets,dotnet-httpclient,ipsec,C#,Windows,Sockets,Dotnet Httpclient,Ipsec,我正在开发一个Windows server应用程序,该应用程序将使用HTTPClient通过套接字将敏感信息传输到另一个Windows服务器。服务器应该配置为使用IPSec。所以,我不必做任何事情来设置应用程序级别的安全连接。但是,我已被指示确保连接是否使用IPSec,如果未使用IPSec则中止 如何以编程方式确定连接是否确实由IPSec保护?该应用程序是C#,位于Windows Server 2016上。我对基于P/Invoke的解决方案或C代码持开放态度,如果需要这样做的话。只要它最终能够与

我正在开发一个Windows server应用程序,该应用程序将使用HTTPClient通过套接字将敏感信息传输到另一个Windows服务器。服务器应该配置为使用IPSec。所以,我不必做任何事情来设置应用程序级别的安全连接。但是,我已被指示确保连接是否使用IPSec,如果未使用IPSec则中止


如何以编程方式确定连接是否确实由IPSec保护?该应用程序是C#,位于Windows Server 2016上。我对基于P/Invoke的解决方案或C代码持开放态度,如果需要这样做的话。只要它最终能够与C#HttpClient类一起工作。

这不是应用程序的问题,也无法完成。隧道对网络堆栈的应用程序级用户是透明的。如果希望应用程序确保连接已加密和验证,请使用TLS。否则,由网络/系统管理员确保策略设置为只允许ipsec通信


想象一下,您找到了一种方法,通过以某种方式询问操作系统来确保隧道的设置。然后在2年内,系统需要扩大规模,IPSec终端转移到专用硬件。哎呀。

这与应用程序无关,也无法完成。隧道对网络堆栈的应用程序级用户是透明的。如果希望应用程序确保连接已加密和验证,请使用TLS。否则,由网络/系统管理员确保策略设置为只允许ipsec通信


想象一下,您找到了一种方法,通过以某种方式询问操作系统来确保隧道的设置。然后在2年内,系统需要扩大规模,IPSec终端转移到专用硬件。哎呀。

您可以检查是否存在活动的IPSec隧道,但无法确保您的套接字是否通过它连接。好吧,我相信您可以尝试添加大量黑客;我从来没有在Widows上设置过ipsec,但在Linux上,我想你可以获得连接列表,并尝试查看你的连接是否基于端口,但这是错误的。ipsec连接的端口,而不是封装数据包的目标端口,最终将与你的.NET端点一起结束。嗯,正确的。我想说的是,如果运气好的话,你可以通过运行一些netsh命令并解析它们的结果来破解一些东西,但是“can”并不意味着“应该”。@MK。我将在Windows的LTSB分支上,所以不会有任何我不知道的操作系统更新。所以黑客行为在这里是可以接受的。我希望有一个WMI解决方案,就像你可以检查是否有一个活动的IPSec隧道,但你不能确保你的套接字是否通过它连接;我从来没有在Widows上设置过ipsec,但在Linux上,我想你可以获得连接列表,并尝试查看你的连接是否基于端口,但这是错误的。ipsec连接的端口,而不是封装数据包的目标端口,最终将与你的.NET端点一起结束。嗯,正确的。我想说的是,如果运气好的话,你可以通过运行一些netsh命令并解析它们的结果来破解一些东西,但是“can”并不意味着“应该”。@MK。我将在Windows的LTSB分支上,所以不会有任何我不知道的操作系统更新。所以黑客行为在这里是可以接受的。不过我希望有一个WMI解决方案,有点像