저는 Azure WebRole (MVC 앱)과 Azure Worker 역할을 가지고 있습니다.OWIN 인증
이제 SignalR 허브가 Owin.SelfHost를 사용하여 Worker Role에서 호스팅됩니다.
MVC 앱은 worker 역할에서이 허브를 호출해야합니다. 이는 매우 간단합니다.
이제 내 문제는 인증입니다.
허브에 대한 호출을 인증 할 수 있도록 Webrole의 Context.User.Identity에 액세스해야합니다.
public class MyHub: Hub
{
public override Task OnConnected() {
var id = Context.User.Identity.Name; // NULL
var connectionId = Context.ConnectionId;
}
[Authorize]
public void SendMessage() ....
}
현재 작업자 역할 - 어떻게 든이
public void Configuration(IAppBuilder app)
{
app.Map("/signalr", map =>
{
map.Run(async context =>
{
var userName = context.Request.Query["user"]; //NULL
var identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationType);
identity.AddClaim(new Claim(ClaimTypes.Name, userName));
context.Authentication.SignIn(identity);
});
.....
});
}
붙어 메신저, 나는 Owin 내 WebRole에서 User.Context (Asp.net ID를) 통과해야 작업자 역할의 파이프 라인.
어떻게 할 수 있습니까?
누구? –
은 같은 도메인에있는 웹 사이트 및 신호 자체 호스트입니까? 쿠키 경로를 설정하기 만하면 쿠키를 공유 할 수 있습니다. 그곳에 두 마리의 용들이있을 것이기에 저는 대답으로 나열하지 않았습니다. –
예 동일한 도메인에있는 웹 사이트는 포트 80에 있으며 IIS에서 호스팅되는 CookieAuthentication 및 ASP.NET ID를 사용하는 반면 SignalR은 포트 8088에 있으며 OWIN은 작업자 역할에서 자체 호스팅합니다. 나에게 포인터를 줄 수 있습니까? 응용 프로그램간에 쿠키를 어떻게 공유 할 수 있습니까? –