2013-07-02 4 views
6

저는 OWIN을 사용하여 자체 호스팅 된 SignalR 인스턴스를 확보했습니다. 승인을 구현하고 싶습니다. 내 사용자는 이미 폼 인증을 사용하여 ASP.NET MVC 응용 프로그램에 로그인했습니다.OWIN에서 호스팅하는 SignalR 구현에서 ASP.NET 폼 인증 쿠키 허용?

동일한 URL에서 두 응용 프로그램을 사용할 수 있으므로 쿠키는 두 URL간에 공유됩니다. 자가 호스팅 된 SignalR 애플리케이션에서 Forms 인증 쿠키를 어떻게 받아들입니까?

설명 : 저는 자체 호스트 인 SignalR 허브에 액세스하는 브라우저에 대해 별도의 (그러나 관련이 있고 동일한 호스트에 설치된) IIS 응용 프로그램에 로그인하는 데 사용 된 것과 동일한 자격 증명을 사용합니다.

질문 : 어떻게 .ASPXAUTH 쿠키를 캡처하고 허브를 호출하기 전에 현재 주체를 설정하기 위해 SignalR 서버 파이프 라인에 연결합니까?

도움이된다면 일부 낸시를 믹스에 넣을 수 있습니다. 사용자가 이미 인증 및 로그인하는 경우

+0

문제에 대한 해결책을 찾았습니까? 내 MVC 애플 리케이션과 내 자체 호스팅 SignalR 서비스가 다른 포트에 있지만 (동일한 시도하고있어). –

답변

0

, 당신은 당신의 SignalR 허브 내에서 다음 확인할 수 있습니다

Context.User.Identity.IsAuthenticated 

이 속성이 true로 설정되어 확신합니다. 이 체크를 허브의 생성자 내에 배치하여 연결을 차단/제거 할 수 있습니다. false이면 다른 페이지로 리디렉션 할 수 있습니다.

+0

인증은 서비스가 아닌 MVC 응용 프로그램에서 발생합니다. .ASPXAUTH 쿠키는 둘 다에서 소비 될 수 있지만,이를 SignalR 또는 OWIN 파이프 라인에 어떻게 연결합니까? –

+1

로저, 당신이 찾고있는 것을 보았지만 그것을 실제로 시도한 적이 없습니다. 연결 클래스에는 "CookieContainer"라는 속성이 있습니다. 이는 [Microsoft.AspNet.SignalR.Client.Connection] (http://msdn.microsoft.com/en-us/library/microsoft.aspnet.signalr.client.connection.cookiecontainer)에서 찾을 수 있습니다 (v = vs.111) .aspx) 어디에서 얻을 수/그것을 설정할 수 있습니다. 이 안에서, 당신은이 [answer] (http://stackoverflow.com/questions/13022415/signalr-net-client-fails-to-connect-upd-how-to-set-auth-cookie)의 코드를 활용하여 시도해보고 추가하십시오. – SeanPrice