【问题标题】:Xamarin.iOS WebViewRenderer how to allow self signed certificates?Xamarin.iOS WebViewRenderer 如何允许自签名证书?
【发布时间】:2017-02-19 15:33:56
【问题描述】:

创建一个需要访问自签名网站的 Xamarin 表单应用程序。
据我所知,实现此目的的唯一方法是为每个平台创建自定义 Web 视图渲染器。
在 Android 上,这可以实现通过覆盖 WebViewClient 中的 OnReceivedSslError。

问题是我们如何在 iOS 上实现这一点?

我尝试过这样覆盖 NSUrlRequest:

public class MyUrlRequest : NSUrlRequest
{
    public MyUrlRequest(NSUrl url) : base(url)
    {
    }

    public MyUrlRequest(IntPtr p) : base(p)
    {
    }

    [Export("allowsAnyHTTPSCertificateForHost:")]
    public static bool Allow(string host)
    {
        return true;
    }

}

并使用 LoadRequest 调用自定义请求,但似乎仍然不起作用。

【问题讨论】:

标签: ios objective-c xamarin xamarin.ios xamarin.forms


【解决方案1】:

要在 iOS 中允许自签名证书,您可以将下一个代码添加到您的 Info.plist 文件中:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

或者您可以指定每个域:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>[ENTER YOUR BASE URL HERE]</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

请参阅此post 了解更多信息。

【讨论】:

    猜你喜欢
    • 2015-05-08
    • 1970-01-01
    • 2017-12-19
    • 2020-05-22
    • 2012-12-26
    • 2019-03-01
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多