连接到UWP中的SignalR(Core)集线器时,获取“证书颁发机构无效或不正确”

时间:2018-09-26 17:03:48

标签: .net uwp signalr signalr-hub signalr.client

我正在尝试从UWP应用程序连接到SignalR Core集线器。

在.NET Core应用程序(2.1)中,它可以正常工作,而在UWP中,当调用hub.StartAsync()时会引发异常。

  

证书颁发机构无效或不正确

这是我的代码:

hub = new HubConnectionBuilder()
    .WithUrl("http://localhost:49791/hubs/status")
    .Build();

await hub.StartAsync();

这是怎么回事?

我猜想我必须在Package Manifest中配置一些东西,但是呢?

3 个答案:

答案 0 :(得分:1)

好的,我进入了SignalR的Gitter Chat,一种用户指出了解决方法。对他表示敬意。这是谈话的摘录。

Andrew Stanton-Nurse(@anurse): 您的应用程序使用SSL吗?该URL似乎是http,但是仅当使用自签名SSL证书时才会出现此错误

JoséManuel Nieto @SuperJMN 我不确定!我正在使用默认的ASP。用于Wep API的NET Core模板。我该如何检查?谢谢你的快速反应!

Andrew Stanton-Nurse @anurse 尝试仅浏览到浏览器中的URL,它会将您重定向到https://localhost:...吗?

JoséManuel Nieto @SuperJMN 好的,我在这里发现了问题

Snapshop

要使其正常工作,必须取消选中

答案 1 :(得分:0)

我知道这是一段时间前发布的。我遇到了同样的问题,并且没有像您一样选中“启用SSL”。是的,它可以工作,但是如果您仍要保持SSL启用并针对https进行调试,则可以添加以下代码。 (仅用于调试,请勿将其推送到任何产品中)。我还在UWP的Private Networks中启用了Package.appxmanifest

    Connection = new HubConnectionBuilder().WithUrl("https://localhost:44333/clienthub", options =>
                    {
                        options.HttpMessageHandlerFactory = (handler) =>
                        {
                            if (handler is HttpClientHandler clientHandler)
                            {
                                clientHandler.ServerCertificateCustomValidationCallback = ValidateCertificate;
                            }
                            return handler;
                        };
                    }).Build();

bool ValidateCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
        {
            // TODO: You can do custom validation here, or just return true to always accept the certificate.
            // DO NOT use custom validation logic in a production application as it is insecure.
            return true;
        }

答案 2 :(得分:0)

就我而言,我从Package.appxmanifest添加了以下功能

enter image description here