Hier ist das Szenario:Web API 2.1 Windows-Authentifizierung CORS Firefox
ich ein Web-API-Projekt erstellt und ein MVC-Projekt, etwa so:
http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api
I CORS-Support über nuget installiert und hinzugefügt die EnableCorsAttribute
Ich lief das Projekt und alles funktionierte wie erwartet (GET, PUT und POST) über Chrome, IE und FireFox.
Ich habe dann Windows-Authentifizierung im Web-API-Projekt aktiviert (ja, ich brauche wirklich Auth im API-Projekt zu gewinnen). Um dies zu erhalten zu arbeiten, habe ich die xhrFields meiner jQuery.ajax Anruf arg:
$.ajax({
type: method,
url: serviceUrl,
data: JSON.stringify(foo),
contentType: 'application/json; charset=UTF-8',
xhrFields: {
withCredentials: true
}
}).done(function (data) {
$('#value1').text(data);
}).error(function (jqXHR, textStatus, errorThrown) {
$('#value1').text(jqXHR.responseText || textStatus);
});
Außerdem habe ich die EnableCorsAttribute.SupportsCredentials Eigenschaft = true
ich alles getestet werden. Chrome und IE funktionierten, FireFox nicht. Firefox erhält eine 401 als Antwort auf seine Preflight (OPTIONS) Anfrage.
Es scheint, als ob FireFox keinen Versuch unternimmt, sich mit dem Dienst zu authentifizieren.
Hat jemand eine Lösung für dieses Problem gefunden?
Ich habe gerade einen Kommentar zu dem von Ihnen verlinkten SO-Thread gepostet. Auch wenn die Windows-Authentifizierung aktiviert ist, können Sie für den integrierten IIS 7+ -Modus ordnungsgemäß auf CORS-Preflight-Anforderungen in Ihrem HTTP-Modul reagieren. –