首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UWP ServicePointManager.ServerCertificateValidationCallback

UWP ServicePointManager.ServerCertificateValidationCallback
EN

Stack Overflow用户
提问于 2019-12-31 22:11:40
回答 1查看 311关注 0票数 9

我有一个使用ServicePointManager.ServerCertificateValidationCallback类和方法实现证书钉扎的Xamarin.Forms应用程序。在Android和iOS上,这是没有问题的,因为它将允许连接到那些证书密钥已被固定的预期服务,而不允许那些我没有的服务连接。

但是,在UWP上,无论证书密钥是否固定,都允许所有连接。我已经显式地从证书验证方法返回false,并且仍然允许连接。我确信正在执行检查,因为我已经调试并逐步通过了证书验证方法。

什么会导致连接继续进行,即使我从验证检查中返回false?

代码语言:javascript
复制
ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertficate;
private static bool ValidateServerCertficate(
   object sender,
   X509Certificate certificate,
   X509Chain chain,
   SslPolicyErrors sslPolicyErrors
)
{
   return false;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-08 00:01:06

我通过以下方法解决了这个问题:

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

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

代码语言:javascript
复制
<Extensions>
   <Extension Category="windows.certificates">
     <Certificates>
       <TrustFlags ExclusiveTrust="true" />
     </Certificates>
   </Extension>
</Extensions>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59548774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档