Mam problem z CORS podczas samodzielnego hostowania SignalR z OWIN, co ma miejsce tylko wtedy, gdy próbuję włączyć uwierzytelnianie.Połączenia międzydomenowe SignalR z samodzielnym hostowaniem i uwierzytelnianiem
Błąd pojawia się w przeglądarce internetowej jest:
XMLHttpRequest nie może załadować http://.../signalr/negotiate?[snip] Origin ... nie jest dozwolone przez Access-Control-Allow-Origin
Dzieje się tak tylko wtedy, gdy I włączyć uwierzytelnianie w moim własnym hostingiem za pomocą podejścia w this answer:
public void Configuration(IAppBuilder app)
{
var listener = (HttpListener)app.Properties[typeof(HttpListener).FullName];
listener.AuthenticationSchemes = AuthenticationSchemes.Ntlm;
app.MapHubs(new HubConfiguration { EnableCrossDomain = true });
}
Gdybym zakomentuj AuthenticationSchemes
linia wtedy działa CORS (i sprawdziłem wszystko w these instructions). Ten sam problem występuje, jeśli korzystam z innych schematów uwierzytelniania niż NTLM.
Korzystanie Skrzypek, aby sprawdzić, co się dzieje, bez uwierzytelniania włączona widzę niezbędne nagłówki Cors wracając z serwera:
kontroli dostępu-ce-Poświadczenia: true
Access-Sterowanie Pozwól-Origin: [mój serwer]
Jednak po włączeniu uwierzytelniania otrzymuję odpowiedź 401, której brakuje tych nagłówków. Wszystkie żądania mają wymagany nagłówek Origin
.
Po zbadaniu SignalR source code wygląda na to, że nagłówki są ustawiane, ale prawdopodobnie przy włączonej autoryzacji HttpListener
wysyła początkową odpowiedź 401 bez uderzania w ten kod.
Więc myślę, że moje pytanie brzmi: w jaki sposób uzyskać HttpListener
do włączenia nagłówka Access-Control-Allow-Origin
w negocjacjach protokołów uwierzytelniania?
Czy zdarzyło Ci się to jeszcze bardziej? Cierpię na ten sam problem ... –