Ho un WebApi protetto con Basic Auth che viene applicato all'intera API utilizzando un AuthorizationFilterAttribute. Ho anche Hub SignalR seduti su molti dei miei controller Api.Utilizzo di ajaxSetup beforeSend per Basic Auth sta interrompendo la connessione SignalR
Accanto a questo ho una pagina web che fa uso del mio WebApi. La pagina Web è in gran parte scritto in Backbone, così, al fine di effettuare chiamate al mio WebAPI protetta, ho aggiunto il seguente jquery
$.ajaxSetup({
beforeSend: function (jqXHR, settings) {
jqXHR.setRequestHeader('Authorization', 'Basic ' + Token);
return true;
}
});
Questo funziona per comunicare con i miei controllori Api, ma aggiungendo il codice di cui sopra si è rotto il il collegamento al mio SignalR Mozzi, in particolare:
XMLHttpRequest cannot load http://localhost:50000/signalr/negotiate?_=1366795855194.
Request header field Authorization is not allowed by Access-Control-Allow-Headers.
Rimozione della linea di jqXHR.setRequestHeader()
ripristina la mia connessione Hub SignalR ma rompe le chiamate API.
luce di quanto sopra, avrei potuto fare qualcosa hacky e impostare solo l'intestazione richiesta se la richiesta viene fatta non è a/signalr ma che appena si sente sporca ...
C'è un modo più pulito intorno a questo?
Sto facendo qualcosa di sciocco? Qualcun altro ha corso a questo?
L'AuthorizeHubConnection era il pezzo che mi mancava! Grazie!!! – kzfabi