Реклама:

Установка страницы с информацией об ошибке по умолчанию и страниц для специфических кодов ошибки

•ccustomErrOrS

mode="RemoteOnly"

defaultRedirect="GeneralError.aspx">

<error statusCode="404" redirect="NotFound.aspx" /> </customErrors>

гд ПРИМЕЧАНИЕ В зависимости от сложности страницы с информацией об ошибке вы можете использовать как страницу ASP.NET, так и страницу, которая обслуживается не~ посредственно сервером Microsoft Internet Information Services (IIS). При возникновении внутренней ошибки сервера ASP.NET может зависнуть, и страница с информацией об ошибке станет недоступной.

Этот метод имеет определенные недостатки.

• Вы не можете получить доступ к информации об ошибке (например, для осуществления регистрации или аудита).

■ Код реагирования 302 Object Moved HTTP запускается для клиента с целью перс-направления на страницу с информацией об ошибке. Этот код широко используется автоматизированными сканерами для определения состояний ошибок.

Перехват ошибок 401 (unauthorized)

ASP.NET запускает кол состояния 1-ПТР 401 всякий раз, когда пользователь пытается получить доступ к ресурсу, не имея на это полномочий, например, если пользователь не зарегистрирован ИЛИ не назначен на требуемую роль. Однако вы не можете перехватывать ошибки 401 путем добавления пары атрибутов statusCode/redim:t в элемент customErrors, поскольку ASP.NET использует этот специальный кол состояния для включения механизмов аутентификации.

При использовании аутентификации Microsoft. Windows кол 401 должен попасть на IIS для инициирования квитирования связи аутентификации (для этого используется конфигурированный метод аутентификации). При использовании аутентификации Forms код 401 преобразуется в 302 (Redirect) лля перенаправления на страницу регистрации.

Если пользователь уже вошел в приложение, вы можете не отображать страницу регистрации или регистрационное диалоговое окно IIS, а отобразить сообщение i«You Are Not Aiithorizcd» при попытке пользователя получить доступ к ресурсу без соответствующей авторизации. При этом можно использовать различные подходы Э зависимости от выбранного механизма аутентификации.

Аутентификация Windows

Используя аутентификацию Windows, необходимо проверять кол состояния НТТР до передачи обработанного ответа на 1IS. Если пользователь аутентифицирован, однако колом состояния является кол 401, вы можете перенаправить пользователя на страницу с информацией об ошибке NoAccess. Если пользователь анонимный, кол 401 следует отослать назад на IIS для запуска аутентификации. Лучшим местом вложения Этого кода является событие EndRequest в конвейере. (В результате сбоя авторизации весь конвейер переходит к обработке события EndRequest, то есть вы не увидите код 401 в событии (Post)AuthorizeRequest, которое на первый взгляд кажется правильным для кола этого типа.)

protected void Application_EndReqoest(obiect sender, EventArgs e') {

if (Response.StatusCode == 401 && Request.IsAuthenticated) Response. ftedi rect (" "/NoAccess. Htm" );


⇐ Предыдущая страница| |Следующая страница ⇒