У меня есть приложение, которое использует проверку подлинности с помощью форм ASP.NET.По большей части это работает отлично, но я пытаюсь добавить поддержку простого API через файл .ashx.Я хочу, чтобы в файле ashx была необязательная аутентификация (т. Е. Если вы не указали заголовок Authentication, он просто работает анонимно).Но, в зависимости от того, что вы делаете, я хочу требовать аутентификацию при определенных условиях.
Я подумал, что будет просто ответить на код состояния 401, если требуемая аутентификация не была предоставлена, но похоже, чтоМодуль проверки подлинности форм перехватывает это и отвечает перенаправлением на страницу входа.Я имею в виду, что если мой ProcessRequest
метод выглядит следующим образом:
public void ProcessRequest(HttpContext context)
{
Response.StatusCode = 401;
Response.StatusDescription = "Authentication required";
}
Тогда вместо того, чтобы получить код ошибки 401 на клиенте, как я и ожидал, я на самом деле получение перенаправления 302. На страницу входа в систему.
Для обычного HTTP-трафика я вижу, как это было бы полезно, но для моей страницы API я хочу, чтобы 401 прошел без изменений, чтобы клиентский клиентвместо этого может ответить на него программно.
Есть ли способ сделать это?