Как программно сгенерировать ошибку 401 на странице ASP.NET

StackOverflow https://stackoverflow.com/questions/217678

  •  03-07-2019
  •  | 
  •  

Вопрос

Как вы видите, это вопрос не веб-разработчика. Я хотел бы иметь страницу ASPX, которая при определенных обстоятельствах может генерировать ошибку 401 из кода. В идеале это будет показывать стандартную страницу IIS.

Это было полезно?

Решение

Установите Response.StatusCode , а затем - если вам нужно остановить выполнение - позвоните в Response.End ( ) .

Другие советы

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 .

scroll top