AuthorizationFilterAttribute を使用して Api 全体に適用される Basic Auth で保護された WebApi があります。また、いくつかの Api コントローラーに SignalR ハブを配置しています。
これに加えて、WebApi を利用する Web ページがあります。Web ページは主に Backbone で記述されているため、セキュリティで保護された WebApi を呼び出すために、次の jquery を追加しました。
$.ajaxSetup({
beforeSend: function (jqXHR, settings) {
jqXHR.setRequestHeader('Authorization', 'Basic ' + Token);
return true;
}
});
これは、私の Api コントローラーとの通信には機能しますが、上記のコードを追加すると、SignalR ハブへの接続が切断されました。具体的には次のとおりです。
XMLHttpRequest cannot load http://localhost:50000/signalr/negotiate?_=1366795855194.
Request header field Authorization is not allowed by Access-Control-Allow-Headers.
行を削除jqXHR.setRequestHeader()
すると、SignalR Hub 接続が復元されますが、Api 呼び出しが中断されます。
上記を考えると、私はハックなことをして、リクエストが /signalr に対するものではない場合にのみリクエストヘッダーを設定できますが、それはただ汚いと感じます...
これを回避するよりクリーンな方法はありますか?
私はばかげたことをしているだけですか?他の誰かがこれに遭遇しましたか?