Междоменные соединения SignalR с самостоятельным размещением и аутентификацией

У меня проблема с CORS при самостоятельном размещении SignalR с OWIN, которая возникает только при попытке включить аутентификацию.

Ошибка, которую я получаю в своем веб-браузере:

XMLHttpRequest не может загрузитьHTTP: //.../signalr/negotiate [надрез] Происхождение ... не разрешено Access-Control-Allow-Origin

Это происходит только в том случае, если я включаю аутентификацию на своем сервере, используя подходэтот ответ:

public void Configuration(IAppBuilder app)
{
  var listener = (HttpListener)app.Properties[typeof(HttpListener).FullName];
  listener.AuthenticationSchemes = AuthenticationSchemes.Ntlm; 

  app.MapHubs(new HubConfiguration { EnableCrossDomain = true });
} 

Если я закомментируюAuthenticationSchemes линия тогда CORS работает (а ямы проверили все вэти инструкции). Я получаю ту же проблему, если использую другие схемы аутентификации, чем NTLM.

Используя Fiddler, чтобы проверить, чтопродолжается,без аутентификация включена. Я вижу необходимые заголовки CORS, возвращающиеся с сервера:

Access-Control-Allow-Credentials: правда

Access-Control-Allow-Origin: [мой сервер]

Однако, как только я включаю аутентификацию, я получаю ответ 401, в котором отсутствуют эти заголовки. Все запросы имеют необходимыеOrigin заголовок.

Исследовав СигналРисходный код похоже, что заголовки устанавливаются, но, вероятно, с включенной аутентификациейHttpListener отправляет первоначальный ответ 401, не нажимая этот код.

Поэтому я думаю, что мой вопрос: как мне получитьHttpListener включитьAccess-Control-Allow-Origin заголовок в его согласовании протоколов аутентификации?

Ответы на вопрос(2)

Ваш ответ на вопрос