Клиент Azure SignalR .NET Framework C # не может пройти проверку подлинности - PullRequest
1 голос
/ 24 июня 2019

Я пытаюсь подключить приложение C # .NET 4.7 в качестве клиента к моей службе Azure SignalR. Я использую ASP.NET-версию клиентской библиотеки SignalR, а не ASP.NET CORE.

У меня есть код, настроенный так:

var serviceUtils = new ServiceUtils(ConfigurationManager.ConnectionStrings["Azure:SignalR:ConnectionString"].ConnectionString);

var url = $"{utils.Endpoint}/client/";

_connection = new HubConnection(url, $"?hub={hubName}")
{
    ConnectionToken = serviceUtils.GenerateAccessToken(url, userId)
};

IHubProxy proxy = _connection.CreateHubProxy(hubName);

await _connection.Start().ConfigureAwait(false);

Однако это не работает. Я получаю 'StatusCode: 401, ReasonPhrase:' Unauthorized '', когда _connection.Start () генерирует исключение.

Генерация токена "ServiceUtils" взята из примера здесь:

https://github.com/vavjeeva/AzureSignalRConsoleApp/blob/master/AzureSignalRConsoleApp.Utils/ServiceUtils.cs

Интересно, что я реализовал ту же логику в базовом консольном приложении C # .Net Core, используя версию библиотеки .Net Core, и она действительно работает, используя ту же строку подключения. Разница в том, что я использую HubConnectionBuilder, которого нет в версии библиотеки asp.net. Я предполагаю, что оба аутентифицируются по-разному.

Как мне получить такую ​​функциональность, работающую в этой версии библиотеки? Я хочу, чтобы приложение-служба в качестве клиента могло вызывать методы hubu через службу Azure SignalR.

...