Как вы можете видеть, это вопрос от не веб-разработчика. Я хотел бы иметь страницу ASPX, которая при определенных обстоятельствах может генерировать ошибку 401 из кода. В идеале это отобразило бы стандартную страницу IIS.Как сгенерировать ошибку 401 программно на странице ASP.NET
ответ
Установить Response.StatusCode, а затем - если вам необходимо остановить выполнение - позвоните по телефону Response.End().
Вы должны иметь возможность использовать только следующее, согласно MSDN.
Throw New HttpException(401, "Auth Failed")
Редактировать После просмотра других ответов код статуса будет более подходящим.
Response.StatusCode = 401;
Response.End();
Я думаю, что я до сих пор предпочитаю:
throw new HttpException(401, "Auth Failed")
Я не думаю, что метод Response.StatusCode
запускает пользовательские ошибки, определенные в файле web.config, например,
<customErrors mode="On" defaultRedirect="GenericErrorPage.htm">
<error statusCode="401" redirect="AuthFailed.htm" />
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
Выброс нового исключения определенно вызывает ошибки пользовательского интерфейса.
Кроме того, вы можете использовать средство регистрации ошибок на уровне приложения, например ELMAH или что-то в этом роде, и я не думаю, что там был бы зарегистрирован метод Response.StatusCode
.
Примечание: Теперь я вижу, что в идеале должна отображаться стандартная страница ошибки IIS. Очевидно, что пользовательские страницы ошибок не нужны. В этом случае я бы использовал метод Response.StatusCode
.
Один дополнительный комментарий.
Если часть страницы уже записана в выходной буфер, важно, чтобы вы очистили буферный контент, или страница может отображаться неправильно.
Это вполне вероятно, в шаблонной среде. например Мастер-страницы ...
Response.ClearContent();
Response.StatusCode = 401;
Response.End();
- 1. Как отладить ошибку 401 ASP.NET 4.6 WebAPI?
- 2. Как сгенерировать XSLT программно
- 3. Как сгенерировать кнопки программно?
- 4. как решить ошибку 401
- 5. Javascript dropdownlist.selectedIndex вызывает ошибку на странице ASP.net
- 6. Получение 401 ошибку на IIS 6
- 7. Как сгенерировать пустую иконку программно?
- 8. Как нажимать кнопку на веб-странице ASP.NET программно?
- 9. Инициатор IPN, возвращающий ошибку 401
- 10. Программно сгенерировать ключ приложения IIS
- 11. Как сгенерировать событие мыши программно?
- 12. Как сгенерировать sessionId программно весной
- 13. ASP.NET. Пользовательская страница на 401
- 14. Как сгенерировать код XAML программно?
- 15. Как сгенерировать эту последовательность программно
- 16. Как сгенерировать NUnit светильники программно?
- 17. ASP.NET MVC - Как показать несанкционированную ошибку на странице входа?
- 18. nltk.twitter дает ошибку 401
- 19. Программно сгенерировать проект Eclipse
- 20. Программно сгенерировать Django sqlsequencereset
- 21. Сгенерировать упорядоченные цвета программно
- 22. сгенерировать .mht файл программно
- 23. Pusher продолжает давать ошибку 401 на производстве
- 24. $ .post на странице ошибку
- 25. Программно сгенерировать PDF из HTML на iPhone
- 26. С Asp.Net Mvc программно определите название раздела на странице контента
- 27. Отключение каждого входа на странице программно в ASP.NET
- 28. ASP.NET авторизуется на странице
- 29. Удаленный сервер возвратил ошибку: (401) Неавторизованный в контексте .ExecuteQuery(): ASP.Net
- 30. Как включить виджет asp.net на странице asp.net
Я попробовал это, и когда я проверил ответ HTTP в браузере, я получил 500 (Внутренняя ошибка сервера) вместо 401 (Несанкционированное) – dreamerkumar 2013-11-02 17:11:58
Кроме того, не бросать исключения хуже с точки зрения производительности? – dreamerkumar 2013-11-02 17:13:01
Мне действительно все равно, что предпочтительнее. Этот метод короче и легче запоминается, поэтому я его использую. – Brad 2016-05-20 18:26:43