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

Как видите, это вопрос от разработчика, не 9X_c#.net являющегося веб-сайтом. Я хотел бы иметь 9X_c#.net страницу ASPX, которая при определенных 9X_c# обстоятельствах может генерировать ошибку 9X_.cs-file 401 из кода. В идеале это будет стандартная 9X_aspx страница IIS.

36
0
5
Общее количество ответов: 5

Ответ #1

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

Response.StatusCode = 401; Response.End(); 
9X_asp.net-2.0
61
3

  • Понятия не имею, почему это было отклонено - это почти то же самое, что и мой (проголосовавший за) ответ, только в виде кода. Конечно, в нем нет ссылок, которые * могут * быть полезны, но это все равн ...

Ответ #2

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

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

59
0

Ответ #3

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

Думаю, я все еще предпочитаю:

throw new HttpException(401, "Auth Failed") 

Я не думаю, что 9X_iis метод Response.StatusCode вызывает пользовательские ошибки, определенные 9X_aspx в файле web.config, например

 

Создание нового 9X_asp.net исключения определенно вызывает пользовательские 9X_.cs-file ошибки.

Кроме того, вы можете использовать 9X_asp.net-2.0 средство ведения журнала ошибок в масштабе 9X_c#-language всего приложения, например ELMAH или что-то в 9X_asp.net-website этом роде, и я не думаю, что метод Response.StatusCode тоже 9X_asp.net-2.0 будет там регистрироваться.

Примечание. Теперь я вижу, что 9X_.cs-file в вопросе сказано, что в идеале должна отображаться 9X_c#-language стандартная страница ошибок IIS. Очевидно, что 9X_csharp пользовательские страницы ошибок не нужны. В этом 9X_aspx случае я бы использовал метод Response.StatusCode.

44
0

Ответ #4

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

Согласно MSDN, вы должны иметь возможность просто 9X_asp.net-2.0 использовать следующее.

Throw New HttpException(401, "Auth Failed") 

Изменить. После просмотра 9X_iis других ответов установка кода статуса будет 9X_asp.net-website более подходящей.

12
1

  • Я попробовал это, и когда я проверил HTTP-ответ в браузере, я получил 500 (внутренняя ошибка сервера) вместо 401 (неавторизованный ...

Ответ #5

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

Еще один комментарий.

Если часть страницы 9X_c# уже была записана в буфер вывода, важно 9X_c# очистить буферизованное содержимое, иначе 9X_asp-net страница может отображаться некорректно.

Это 9X_asp.net-2.0 вполне вероятно в шаблонной среде. например 9X_iis Главные страницы ...

Response.ClearContent(); Response.StatusCode = 401; Response.End(); 

10
0