2014-10-30 1 views
0

У меня есть концентратор SignalR (приложение чата), которое размещено с ASP.NET MVC (или OWIN).Подпись пользователя SignalR в

Мне нужна обычная проверка файлов cookie. (Либо вход в сам концентратор , либо даже лучше в первом размещенном MVC/OWIN приложении).

Задача звучит довольно тривиально, однако я не могу этого сделать.

В Интернете есть много информации о фактическом разрешении доступа на основе уже подписанного пользователя (содержащегося в файлах запросов). Но информации о фактическом подписании и размещении информации в файлах cookie (и, особенно, ее подписке в размещенном приложении, а не в самом узле) мало.

Кроме того, некоторые документы с примерами like this просто не работают (возможно, из-за некоторых изменений в последних версиях SignalR).

Например, FormsAuthentication.SetAuthCookie бросает исключение, и там нет даже любой Response недвижимости в HubCallerContext доступна для записи куки авторизации вручную.

Я могу предположить (и даже понять), что, как правило, нет смысла писать что-либо в ответ, поскольку соединение SignalR - это не просто обычная «логика обратной передачи», тем не менее, все еще не может найти способ аутентификация (вход) должна работать.

ответ

0

SignalR не предоставляет вам какой-либо метод аутентификации. Вместо этого он использует аутентификацию, предоставляемую промежуточным программным обеспечением Owin.

Если вы используете ASP.NET, вы должны просто зарегистрировать своего пользователя таким же образом, как и с обычным ASP-приложением, используя SignInManager. Затем сделайте соединение SignalR. SignalR будет уважать это и в контексте вашего концентратора вы получите доступ к зарегистрированному пользователю, а также сможете использовать фильтры авторизации.

Помните, что во время входа в систему должно быть зарегистрировано доSignalR соединение вот-вот начнется.

И ссылка, которую вы предоставили, совершенно нормально и относится к v2 SignalR.

 Смежные вопросы

  • Нет связанных вопросов^_^