asp.net-web-api - 使用自签名证书连接到服务器
问题描述
我一直在研究如何通过 xamarin 应用程序使用在我的本地主机上执行的 web api。Web api 运行完美,我可以使用 Web 浏览器向我的 sql 服务器添加数据或从中获取数据,但如果我尝试将 xamarin 连接到它,我总是收到身份验证错误(Mono.Btls.MonoBtlsException:Ssl 错误:1000007d:SSL例程:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED)。我基本上是这样做的。我关注了这篇文章:
http://xamarininterviewquestion.blogspot.com/2019/06/ssl-certificate-and-public-key-pinning.html
所以它肯定不起作用,我想尝试另一种方式;
将 TLSConfig DangerousAcceptAnyServerCertificateValidator 设置为 true。因为知道如果我能够测试它,我会很高兴。
那很酷,但由于我不是专业人士,所以我不知道如何实施;
var httpHandler = new HttpClientHandler();
// Return `true` to allow certificates that are untrusted/invalid
httpHandler.ServerCertificateCustomValidationCallback =
HttpClientHandler.DangerousAcceptAnyServerCertificateValidator;
我得到“DangerousAcceptAnyServerCertificateValidator”没有定义。
提前谢谢大家,如果我不清楚,对不起。
解决方案
DangerousAcceptAnyServerCertificateValidator
根据其文档,不适用于 Xamarin 平台。
但从字面上看,您可以编写相同的代码,例如,
var handler = new HttpClientHandler();
handler.ServerCertificateCustomValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
HttpClient client = new HttpClient(handler);
推荐阅读
- python - AWS Lambda 记录到一个 JSON 行
- powershell - Powershell MessageBox 将不需要的数据添加到我的变量中
- sql - 查询 NULL 数、MinValue、MaxValue 和 AvgValue 没有返回结果(不正确)
- mysql - 使用 mysql 的 GROUP BY 自定义奇数列的输出
- javascript - :: 一次绑定的表示法不适用于 AnguarJS 1.6.4
- java - 控制器中的 Spring Boot 覆盖功能
- angular - 在 Angular CLI 项目中找不到源文件
- javascript - How to load external script with optimized require.js?
- spring-boot - 在 Kotlin 中使用 Jpa 注释从基类继承父属性
- java - Spring Integration DSL ScatterGather 流块