【问题标题】:UWP ServicePointManager.ServerCertificateValidationCallbackUWP ServicePointManager.ServerCertificateValidationCallback
【发布时间】:2020-04-20 06:12:35
【问题描述】:

我有一个使用 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;
}

【问题讨论】:

标签: c# xamarin xamarin.forms uwp .net-standard


【解决方案1】:

我能够通过以下方式解决此问题:

  1. 在UWP项目中,双击Package.appxmanifest文件
  2. 在声明菜单下,从可用声明下拉菜单中选择证书
  3. 点击添加按钮
  4. 选择独占信任选项

这会将以下 xml 放入 Package.appxmanifest 文件中:

<Extensions>
   <Extension Category="windows.certificates">
     <Certificates>
       <TrustFlags ExclusiveTrust="true" />
     </Certificates>
   </Extension>
</Extensions>

【讨论】:

    猜你喜欢
    • 2012-12-07
    • 2015-01-29
    • 2014-12-10
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    相关资源
    最近更新 更多