Ich habe einen WebAPI mit Grund Auth gesichert, die auf die gesamte Api angelegt wird ein AuthorizationFilterAttribute verwenden. Ich habe auch SignalR Hubs auf mehreren meiner Api Controller.Mit ajaxSetup beforeSend für Basic Auth bricht SignalR Verbindung
Daneben habe ich eine Webseite, die Verwendung meiner WebAPI macht. Die Web-Seite ist vor allem in Backbone geschrieben, so, um Anrufe zu meinem gesicherten WebAPI zu machen, habe ich hinzugefügt die die folgende Jquery
$.ajaxSetup({
beforeSend: function (jqXHR, settings) {
jqXHR.setRequestHeader('Authorization', 'Basic ' + Token);
return true;
}
});
Dies funktioniert für die Kommunikation mit meinen Api-Controller, aber das Hinzufügen des obigen Code gebrochen Verbindung zu meinem SignalR Hub, insbesondere:
XMLHttpRequest cannot load http://localhost:50000/signalr/negotiate?_=1366795855194.
Request header field Authorization is not allowed by Access-Control-Allow-Headers.
die jqXHR.setRequestHeader()
Linie stellt Verbindung meiner SignalR Hub entfernen, aber bricht die Api Anrufe.
die oben gegeben, ich etwas hacky und setzte nur die Request-Header tun könnte, wenn die Anfrage nicht zu/signalr gemacht wird, aber das fühlt sich einfach schmutzig ...
Gibt es einen sauberen Weg, um dies?
Mache ich gerade etwas albern? Ist noch jemand hineingerannt?
Die AuthorizeHubConnection war das Stück, das ich fehlte! Vielen Dank!!! – kzfabi