我有一个使用ServicePointManager.ServerCertificateValidationCallback类和方法实现证书钉扎的Xamarin.Forms应用程序。在Android和iOS上,这是没有问题的,因为它将允许连接到那些证书密钥已被固定的预期服务,而不允许那些我没有的服务连接。
但是,在UWP上,无论证书密钥是否固定,都允许所有连接。我已经显式地从证书验证方法返回false,并且仍然允许连接。我确信正在执行检查,因为我已经调试并逐步通过了证书验证方法。
什么会导致连接继续进行,即使我从验证检查中返回false?
ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertficate;
private static bool ValidateServerCertficate(
object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors
)
{
return false;
}发布于 2020-01-08 00:01:06
我通过以下方法解决了这个问题:
这会将以下xml放入Package.appxmanifest文件中:
<Extensions>
<Extension Category="windows.certificates">
<Certificates>
<TrustFlags ExclusiveTrust="true" />
</Certificates>
</Extension>
</Extensions>https://stackoverflow.com/questions/59548774
复制相似问题