Tôi có một WebApi được bảo mật với Basic Auth được áp dụng cho toàn bộ Api bằng cách sử dụng AuthorizationFilterAttribute. Tôi cũng có các Trung tâm SignalR ngồi trên một số Bộ điều khiển Api của tôi.Sử dụng ajaxSetup beforeSend cho Basic Auth đang ngắt kết nối SignalR
Cùng với điều này, tôi có một trang web sử dụng WebApi của tôi. Các trang web chủ yếu viết bằng Backbone, vì vậy để thực hiện cuộc gọi đến WebAPI bảo đảm của tôi, tôi đã thêm jquery sau
$.ajaxSetup({
beforeSend: function (jqXHR, settings) {
jqXHR.setRequestHeader('Authorization', 'Basic ' + Token);
return true;
}
});
này hoạt động để giao tiếp với bộ điều khiển Api của tôi, nhưng thêm mã trên đã phá vỡ kết nối với Trung tâm SignalR của tôi, cụ thể:
XMLHttpRequest cannot load http://localhost:50000/signalr/negotiate?_=1366795855194.
Request header field Authorization is not allowed by Access-Control-Allow-Headers.
Xóa đường dây jqXHR.setRequestHeader()
khôi phục kết nối SignalR Hub nhưng ngắt cuộc gọi Api.
Với trên, tôi có thể làm điều gì đó hacky và chỉ đặt tiêu đề yêu cầu nếu yêu cầu được thực hiện không phải là để/signalr nhưng điều đó chỉ cảm thấy bẩn ...
Có cách nào làm sạch xung quanh này?
Tôi chỉ đang làm điều gì đó ngớ ngẩn? Có ai khác chạy vào điều này không?
Các AuthorizeHubConnection là mảnh tôi nhớ da diết! Cảm ơn!!! – kzfabi