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