SignalR с проверкой подлинности Windows не работает при публикации в IIS ⇐ C#
-
Гость
SignalR с проверкой подлинности Windows не работает при публикации в IIS
У меня есть приложение Blazor Server Chat, которое использует концентратор SignalR для отправки сообщений клиенту. Используемая аутентификация — Windows Auth.
Сообщения не доходят до отдельного пользователя. Я протестировал широковещание, которое действительно работает для отправки сообщения через SignalR, но, конечно, всем.
Проблема связана с именем пользователя, зарегистрированного в SignalR. Предполагается, что каждый пользователь имеет индивидуальное имя, а для Windows Auth рекомендуется реализовать NameUserIdProvider следующим образом:
Открытый класс NameUserIdProvider: IUserIdProvider { общедоступная строка GetUserId (соединение HubConnectionContext) { вернуть соединение.Пользователь?.Идентификация?.Имя; }
Однако проблема заключается в том, что это не возвращает текущего пользователя Windows, а возвращает учетную запись пользователя, под которой работает веб-сайт, которая, конечно же, одинакова для всех пользователей.
Я попытался добавить заявку клиента в ClaimsTransformer, но оказалось, что эта заявка недоступна на момент подключения.
Я не понимаю, как это решить. Буду рад любым советам.
У меня есть приложение Blazor Server Chat, которое использует концентратор SignalR для отправки сообщений клиенту. Используемая аутентификация — Windows Auth.
Сообщения не доходят до отдельного пользователя. Я протестировал широковещание, которое действительно работает для отправки сообщения через SignalR, но, конечно, всем.
Проблема связана с именем пользователя, зарегистрированного в SignalR. Предполагается, что каждый пользователь имеет индивидуальное имя, а для Windows Auth рекомендуется реализовать NameUserIdProvider следующим образом:
Открытый класс NameUserIdProvider: IUserIdProvider { общедоступная строка GetUserId (соединение HubConnectionContext) { вернуть соединение.Пользователь?.Идентификация?.Имя; }
Однако проблема заключается в том, что это не возвращает текущего пользователя Windows, а возвращает учетную запись пользователя, под которой работает веб-сайт, которая, конечно же, одинакова для всех пользователей.
Я попытался добавить заявку клиента в ClaimsTransformer, но оказалось, что эта заявка недоступна на момент подключения.
Я не понимаю, как это решить. Буду рад любым советам.
Мобильная версия