Mam WebApi zabezpieczony przez Basic Auth, który jest stosowany do całego Api przy użyciu AuthorizationFilterAttribute. Posiadam także SignalR Hubs siedzące na kilku moich kontrolerach Api.Korzystanie z ajaxSetup beforeSend dla Basic Auth zrywa połączenie SignalR
Oprócz tego mam stronę internetową, która korzysta z mojej WebApi. Na stronie internetowej jest przeważnie napisane w kręgosłup, tak aby wykonywać połączenia do mojej zabezpieczonej WebAPI, dodałem następujące jQuery
$.ajaxSetup({
beforeSend: function (jqXHR, settings) {
jqXHR.setRequestHeader('Authorization', 'Basic ' + Token);
return true;
}
});
Działa to do komunikacji z moich kontrolerów api, ale dodając powyższy kod złamał połączenie do mojego SignalR Piasty, a konkretnie:
XMLHttpRequest cannot load http://localhost:50000/signalr/negotiate?_=1366795855194.
Request header field Authorization is not allowed by Access-Control-Allow-Headers.
Demontaż linii jqXHR.setRequestHeader()
przywraca moją SignalR piasta ale przerywa wywołania aPI.
Biorąc powyższe pod uwagę, mógłby zrobić coś hacky i tylko ustawić nagłówek żądania, jeżeli żądanie jest wykonane nie jest/signalr ale że po prostu czuje się brudna ...
Czy istnieje przejrzysty sposób wokół to?
Czy robię coś głupiego? Czy ktoś jeszcze do tego dołączył?
AuthorizeHubConnection był kawałek mi brakuje! Dzięki!!! – kzfabi