У меня есть приложение Azure WebRole (MVC) и Azure Worker.OWIN Authentication
Теперь у меня есть концентраторы SignalR, размещенные в роли рабочего, используя Owin.SelfHost.
Приложение MVC должно называть эти хабы в рабочей роли - что довольно просто.
Теперь моя проблема - аутентификация.
Мне нужно получить доступ к Context.User.Identity WebRole в webrole, чтобы я все еще мог аутентифицировать вызовы в своих концентраторах.
работник Роль
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);
});
.....
});
}
Как-то, мне нужно пройти -пользователь.контекст (Asp.net идентичности) от моего WebRole к Owin Трубопровод в рабочей роли.
Любая идея, как это сделать?
Любой, кто может помочь? –
- это веб-сайт и собственный хост signalr в том же домене? Вы можете поделиться файлом cookie между ними, установив путь к файлу cookie. Я не назвал ответ, потому что там будет несколько драконов. –
Да, он находится в том же домене, сайт находится в порту 80 и использует CookieAuthentication и идентификатор ASP.NET, размещенные в IIS, в то время как SignalR находится в порту 8088, который сам OWIN размещается в роли пользователя. Можете ли вы дать мне указатель, как я могу совместно использовать файлы cookie между приложениями? –