2014-10-30 3 views
0

저는 ASP.NET MVC (또는 OWIN)에서 호스팅되는 SignalR 허브 (채팅 앱)를 가지고 있습니다.SignalR user signing in

일반적인 쿠키 인증이 필요합니다. (허브 자체에 에 로그인하거나 비아 호스트 MVC/OWIN 앱에서 먼저 더).

작업은 매우 평범한 것 같지만, 나는 그것을 관리 할 수 ​​없습니다.

이미 로그인 한 사용자 (요청 쿠키에 포함)를 기반으로 실제로 액세스 권한을 부여하는 것에 대한 웹에 대한 많은 정보가 있습니다. 하지만 실제로 사용자를 서명하고 정보를 쿠키에 저장하는 것에 대한 정보는 거의 없습니다 (특히 허브 자체가 아닌 호스팅 된 응용 프로그램에 서명하는 경우).

또한 예 : like this의 일부 문서는 이미 작동하지 않습니다 (이는 아마도 SignalR의 마지막 버전에서 변경된 부분 일 수 있습니다).

는 예를 들어, FormsAuthentication.SetAuthCookie에서 예외가 발생하고 수동으로 인증 쿠키를 작성하는 데 사용할 수 HubCallerContext에는 어떤 Response 속성도 없다.

SignalR 연결은 일반적인 "포스트 백 로직"이 아니기 때문에 일반적으로 응답에 무언가를 쓸 수는 없다고 생각할 수도 있지만 (여전히 이해할 수는 없습니다) 인증 (로그인)이 작동해야합니다.

답변

0

SignalR은 인증 방법을 제공하지 않습니다. 대신, Owin 미들웨어에서 제공하는 인증을 사용합니다.

ASP.NET을 사용하는 경우 SignInManager을 사용하여 일반 ASP 앱에서와 동일한 방식으로 사용자를 로그인해야합니다. 그런 다음 SignalR 연결을 만드십시오. SignalR은 그것을 존중하며 허브 컨텍스트에서는 기록 된 사용자에게 액세스 권한을 부여 할뿐만 아니라 인증 필터를 사용할 수 있습니다.

전에SignalR 연결이 시작되기 전에 로그인해야합니다.

제공하신 링크는 완벽하게 적용되며 SignalR의 v2에 적용됩니다.