Предварительный запрос CORS, возвращающий HTTP 401 с аутентификацией Windows
Я много искал в Google и переполнении стека, чтобы найти решение для моей проблемы, но ничего не помогло.
Вот моя проблема:
Я использую IIS 7 со специальной средой программирования под названием WebDEV, которая не допускает прямого манипулированияOPTIONS
HTTP метод. Таким образом, все решения, предполагающие какую-либо обработку запросов на стороне сервера с использованием кода, неосуществимы.
Я должен использовать проверку подлинности Windows и отключить анонимный доступ
У меня есть страница, которая использует CORS для POST на этом сервере. Как этот пост должен иметьContent-type: Octet-stream
предварительная проверка выдается браузером.
Когда я включаю анонимный доступ, все работает нормально (CORS хорошо настроен)
Когда я отключаю анонимный доступ, сервер отвечает HTTP 401 неавторизованным ответом на запрос предварительной проверки, так как он не содержит информацию о полномочиях.
Я пытался написать модуль для IIS, который принимает запросы OPTIONS, как это, но это не сработало (возможно, не удалось правильно добавить модуль в IIS)
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;
}
};
}
}
Вопрос заключается в следующем: как заставить IIS ответить HTTP 200 на запрос предварительной проверки, не включив анонимный доступ и не написав некоторый код на стороне сервера? Существует ли простая конфигурация или готовый модуль для IIS? По крайней мере, каковы подробные шаги для установки вышеупомянутого модуля в IIS 7?