Wenn Sie ajaxSetup beforeSend for Basic Auth verwenden, wird die SignalR-Verbindung unterbrochen

Ich habe ein mit Basic Auth geschütztes WebApi, das mit einem AuthorizationFilterAttribute auf die gesamte API angewendet wird. Ich habe auch SignalR Hubs auf mehreren meiner Api-Controller.

Daneben habe ich eine Webseite, die von meinem WebApi Gebrauch macht. Die Webseite ist größtenteils in Backbone geschrieben. Um also mit meinem gesicherten WebApi zu telefonieren, habe ich die folgende Abfrage hinzugefügt

$.ajaxSetup({
    beforeSend: function (jqXHR, settings) {
        jqXHR.setRequestHeader('Authorization', 'Basic ' + Token);
        return true;
    }
});

Dies funktioniert für die Kommunikation mit meinen Api-Controllern, aber das Hinzufügen des obigen Codes hat die Verbindung zu meinen SignalR-Hubs unterbrochen, insbesondere:

XMLHttpRequest cannot load http://localhost:50000/signalr/negotiate?_=1366795855194. 
Request header field Authorization is not allowed by Access-Control-Allow-Headers. 

Entferne denjqXHR.setRequestHeader() line stellt meine SignalR Hub-Verbindung wieder her, unterbricht jedoch die API-Aufrufe.

Angesichts des oben Gesagten könnte ich etwas Hacky machen und den Anforderungsheader nur setzen, wenn die Anforderung nicht an / signalr gesendet wird, aber das fühlt sich einfach schmutzig an ...

Gibt es einen saubereren Weg, dies zu umgehen?

Mache ich nur etwas Dummes? Hat noch jemand hier reingelaufen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage