我有一个与SignalR中心通信的Xamarin.Forms应用程序。通信使用我自己的SSL证书,但不受信任。使用ICertificatePolicy
界面并实施ServicePointManager.ServerCertificateValidationCallback
在Android和iOS上处理不受信任的认证没有问题。但是,我无法为Windows 8.1,Windows Phone 8.1和Windows 10 Universal App找到合理的替代方案。
是否存在替代方案?没关系,如果它的平台特定,我可以使用Xamarin的DependencyService
。但是,它应该触发一个事件,传递证书,这样我就可以询问用户是否接受了特定的证书。
更新
正如我刚刚发现的那样,根本没有调用ICertificatePolicy方法,只留下ServicePointManager.ServerCertificateValidationCallback方法(适用于iOS和Android)。在Windows Phone 8.1和Windows 10 Universal App中是否有一些替代此类?
更新2
我尝试通过将自签名证书包含在Windows 10应用程序中并编写Windows Phone 8.1中提供的代码来关注this guide。没用。
然后我尝试实施this workaround。即使这样也行不通。
我的最后一次尝试是在this tutorial之后创建一个受信任的SSL证书,但即使在完全遵循这些步骤之后,我最终得到了一个不受信任的证书。当然,我无法连接Windows 10和Windows Phone 8.1。
似乎唯一剩下的选择是使用HttpBaseProtocolFilter
,如this answer中所述,但我不知道如何在SignalR客户端中实现它。
是否存在任何功能性解决方案?