代码之家  ›  专栏  ›  技术社区  ›  Bijington

证书固定在UWP上

  •  0
  • Bijington  · 技术社区  · 6 年前

    Xamarin.Forms 当前为编译的项目 Android , iOS UWP

    WCF 服务合同。

    为了锁定证书,我们根据示例实现了以下代码。这在上正常工作 安卓 在确保使用必要的 HttpClient 在其项目属性下的实现。

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
    ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertificate;
    
    private bool ValidateServerCertificate(object sender,
                                           X509Certificate certificate,
                                           X509Chain chain,
                                           SslPolicyErrors sslPolicyErrors)
    {
        // Make sure we have a certificate to check.
        if (certificate == null)
        {
            return false;
        }
    
        if (sslPolicyErrors != SslPolicyErrors.None)
        {
            return false;
        }
    
        return this.KnownKeys.Contains(certificate.GetCertHashString(), 
                                       StringComparer.Ordinal);
    }
    

    超宽带

    我也在考虑实施我们自己的计划 X509CertificateValidator WCF公司 不过,这也没什么作用。

    问题

    1. 我是否需要/能够指定 HttpClient客户端 实施依据 超宽带 就像你可以为 安卓 网间网操作系统
    2. 有没有我目前缺少的其他方法?
    1 回复  |  直到 6 年前
        1
  •  3
  •   Breeze Liu - MSFT    6 年前

    我建议你使用 HttpBaseProtocolFilter 班级 Windows.Web.Http Namespace 例如,您可以订阅 HttpBaseProtocolFilter.ServerCustomValidationRequested 事件。在这个事件处理程序中,您可以对服务器SSL证书执行额外的验证(除了OS默认值之外)。