【发布时间】:2018-09-21 10:42:48
【问题描述】:
我有一个 Xamarin Forms 项目,在 MainPage.xaml.cs 文件中我想向我的服务器执行请求。服务器使用 ASP.NET Core 2 编写,并使用自签名证书运行。
购买证书并不能解决我的问题,因为客户不希望它和应用程序只在局域网中运行。
在我的 MainPage.xaml.cs 文件中,Http-request 如下所示:
HttpClient m_Client = new HttpClient();
var uri = new Uri(myURL);
var response = await m_Client.GetAsync(uri);
if (response.IsSuccessStatusCode)
{
...
}
到目前为止一切顺利。如果我将应用程序带到 Android 上并尝试执行请求,Android 会因找不到我的证书的 CA 而引发 SSL 异常。
如何使用自签名证书与我的服务器通信?
我查找了问题并找到了很多解决方案,例如:
ServicePointManager
.ServerCertificateValidationCallback +=
(sender, cert, chain, sslPolicyErrors) => true;
如果您将此代码添加到 Android 项目的 MainActivity.cs 文件中,它应该接受所有证书。但这对我不起作用。似乎这个方法永远不会被调用。
对如何进行沟通有什么建议吗?
问候
【问题讨论】:
-
它没有回答你的问题,但是禁用 HTTPS 怎么样? stackoverflow.com/questions/50935730/…
-
@CSharpRocks 是的,这将是我最后的选择 :)
-
您可以从一些证书颁发机构免费获得 SSL 证书:仅举一个例子:letsencrypt.org
-
@SushiHangover 是的,但我不是必须输入域名之类的吗?我没有,服务器在局域网上运行..
标签: ssl xamarin xamarin.android httpclient