Я пытаюсь заставить SignalR работать с использованием Identity ASP.NET. Код очень прост, где мы создаем новое MVC5 веб-приложение, включите Google External Account, войдите с учетной записью Google и сделать запрос на хаб идентифицировать пользователь по телефону:SignalR ASP.NET MVC5 Identity
Context.User.Identity
Во всяком случае , это всегда возвращает null, и, похоже, клиентский прокси не может отправить внешний файл cookie.
Единственный способ решения проблемы делает те же шаги, как указано здесь:
Обходной работает, но я предпочел бы использовать другое решение. Я также проверил https://github.com/gustavo-armenta/CookieAuthenticationSample, но это не использует внешнюю аутентификацию.
Есть ли у вас какие-либо другие идеи о том, как концентратор может распознать внешнюю схему аутентификации ASP.NET Identity?
Thanks
«Обходное решение работает, но я бы предпочел использовать другое решение» - можете ли вы дать какие-либо конкретные причины для этого? Что, если следующее предложение, которое кто-то дает вам, имеет те же проблемы, что и обходной путь, о котором вы уже знаете? Этого можно избежать, если вы объясните причины. –
Спасибо за отзыв. Я пытаюсь понять, не хватает ли чего-то или если SignalR просто не поддерживает внешнюю аутентификацию с использованием идентификатора ASP.NET, и если да, я бы отказался от обходного пути. –
Обходной путь очень небезопасен. Для злоумышленника не составит труда создать действительный токен для произвольного отображаемого имени. Похоже, автор пытался вручную реализовать какой-то HMAC, но полностью не удалось из-за отсутствия какого-либо секретного ключа. Вам было бы намного лучше использовать что-то вроде System.Web.Security.MachineKey или System.Security.Cryptography.ProtectedData. – halter73