C# 如何确定连接的套接字是否使用IPSec?
我正在开发一个Windows server应用程序,该应用程序将使用HTTPClient通过套接字将敏感信息传输到另一个Windows服务器。服务器应该配置为使用IPSec。所以,我不必做任何事情来设置应用程序级别的安全连接。但是,我已被指示确保连接是否使用IPSec,如果未使用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代码持开放态度,如果需要这样做的话。只要它最终能够与
如何以编程方式确定连接是否确实由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解决方案,有点像