Asp.Net Основной сигнал с проверкой подлинности Windows (401)

#asp.net-core #iis #signalr #asp.net-core-5.0

Вопрос:

Я просто пытаюсь заставить SignalR работать с Asp.Net Ядро на IIS. Он отлично работает локально (конечно), но при развертывании я получаю:

HttpRequestException: Код состояния ответа не указывает на успех: 401 (Несанкционированный).

Это происходит, когда

 await hub.StartAsync();
 

называется, в моем IIS у меня есть:

введите описание изображения здесь

Это сайт интрасети, и это необходимо.

 I am currently initializing the Hubs like this:Hub = new HubConnectionBuilder()
    .WithUrl(navMan.ToAbsoluteUri(hubPath), options =>
    {
        options.Transports = Microsoft.AspNetCore.Http.Connections.HttpTransportType.WebSockets;
        options.UseDefaultCredentials = true;
    })
    .WithAutomaticReconnect()
    .Build();
 

В этот момент я так сильно изменил все вокруг, что не знаю, в какую сторону идти. Я думаю, мой вопрос в следующем: как мне заставить это работать в Asp.Net Основная среда? Может ли это сработать? Что еще вам нужно от меня для устранения неполадок? Спасибо.

ИЗМЕНИТЬ: Похоже, это известные проблемы: https://github.com/dotnet/aspnetcore/issues/25000

Комментарии:

1. Пожалуйста, проверьте, совпадает ли проблема с этой проблемой на github: github.com/dotnet/aspnetcore/issues/6120

2. Похоже, но это объяснение повсюду, и неясно, как оно было на самом деле решено.

3. Я сделал то, что сказано в этих документах, и это не работает.

Ответ №1:

Также столкнулся с этим исключением при создании приложения для чата Blazor Server с проверкой подлинности Windows. Немного погуглил, нашел эту аутентификацию и авторизацию в ASP.NET Основной сигнал-Проверка подлинности Windows

Я добавил класс NameUserIdProvider, добавил его в файл Startup.cs и больше никаких проблем.