У нас есть приложение для входа в систему, которое разрешает пользователю регистрироваться только в одном сеансе в нашем приложении. Это делается в обработчике события postauthenticate request.Как отправить ответ 401 от HttpHandler?
Если пользователь должен выйти из системы (у них есть еще один сеанс) мы делаем:
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage();
Это работало отлично в течение длительного времени. Теперь мы добавляем веб-api в наше приложение. Когда вы попадаете в веб-api Url, событие PostAuthentication срабатывает, он видит, что пользователь зашел в другое место ... однако он перенаправляет логин .. ну, что ожидается из-за кода.
Я попытался изменить приведенный выше код, чтобы установить Response.StatusCode = 401
, а затем завершить запрос. Ну, это хорошо работает, но asp.net «красив» и автоматически перенаправляется на страницу входа.
Есть ли способ ответить 401 и не перенаправлять его на страницу входа в систему, если этот запрос поступает из URL-адреса веб-сайта?
301 не 401. 301 должен иметь '' Расположение: заголовок перенаправления, а 401 не. Не могли бы вы прояснить свой первоначальный вопрос, потому что вам ничего не мешает вам выполнить «Response.StatusCode = 401;», который должен работать нормально. – Dai
извините, просто опечатка в моем вопросе. Я установил код состояния 401 ..., который заставляет asp.net перенаправляться на логин на основе проверки подлинности форм в web.config. – PilotBob