Ich suchte viel auf Google und Stack-Überlauf, um eine Lösung für mein Problem zu finden, aber nichts hat funktioniert.CORS Preflight Anfrage zurück HTTP 401 mit Windows-Authentifizierung
Hier ist mein Problem:
I IIS 7 verwenden mit einem speziellen Programmierumgebung namens WebDev, die nicht die direkte Manipulation von
OPTIONS
HTTP-Methode erlaubt. Daher sind alle Lösungen, die eine Art von serverseitiger Anforderungsverarbeitung unter Verwendung von Code vorschlagen, nicht durchführbar.Ich habe Fenster-Authentifizierung verwenden, und deaktivieren Sie den anonymen Zugriff
Ich habe eine Seite, die CORS verwendet, um diesen Server zu senden. Da dieser POST
Content-type: Octet-stream
haben sollte, wird vom Browser ein Preflight ausgegeben.Wenn ich den anonymen Zugriff aktivieren, funktioniert alles einwandfrei (CORS ist gut konfiguriert)
Wenn ich den anonymen Zugriff zu deaktivieren, der Server antwortet mit HTTP 401 nicht autorisierte Antwort auf die Preflight-Anfrage, da es keine Anmeldeinformationen enthalten Information.
Ich habe versucht, ein Modul für IIS zu schreiben, die OPTIONS-Anforderungen wie dies akzeptiert, aber es hat nicht funktioniert (könnte das Modul korrekt zu IIS nicht hinzufügen, vielleicht)
public class CORSModule : IHttpModule { public void Dispose() { } public void Init(HttpApplication context) { context.PreSendRequestHeaders += delegate { if (context.Request.HttpMethod == "OPTIONS") { var response = context.Response; response.StatusCode = (int)HttpStatusCode.OK; } }; } }
Die Frage is: Wie kann ich IIS veranlassen, mit HTTP 200 auf die Preflight-Anfrage zu antworten, ohne den anonymen Zugriff zu aktivieren oder serverseitigen Code zu schreiben? Gibt es eine einfache Konfiguration oder ein vorgefertigtes Modul für IIS? Zumindest, was sind die detaillierten Schritte, um das obige Modul in IIS 7 zu installieren?
Lebensretter bro +1 –