Чтобы решить эту проблему, вам следует избегать использования методов FormsAuthentication.RedirectFromLoginPage() или Response.Redirect() для отправки пользователя обратно к PDF-файлу. К счастью, достаточно просто написать HTML-страницу, которая сообщит браузеру, что он должен перенаправить себя, используя метод Response.AppendHeader(). Этот заголовок носит имя refresh и принимает форму 0;url=[originalUrl]. Он заставляет браузер немедленно загружать целевой URL (0 — означает задержку в 0 секунд).

Ниже показан код, который вы должны использовать вместо метода RedirectFromLoginPage():

Response.AppendHeader("refresh", "0;url=" + url);

Помните, что поскольку вы не применяете метод RedirectFromLoginPage(), вам также придется создать и прикрепить cookie-набор перед тем, как выполнить перенаправление.

Атрибут type включает полное имя пространства имен и класса реализации IHttpHandler и, обязательно, если он помещен в другую сборку, нужно указать внутри него имя этой сборки в формате "пространство_имен.имя_типа, сборка". Дополнительные атрибуты специфицируют verb HTTP (GET, PUT, POST или * — для всех) вместе с путем (атрибут path) и типами файлов, для которых обработчик будет использоваться.

Резюме

Авторизация представляет собой эффективный способ управления доступом к ресурсам. В этой главе вы научились тому, как с помощью авторизации можно защищать отдельные страницы, каталоги и процедуры кода ваших Werj-приложений. Вы узнали также, как следует использовать службу Roles для управления и ассоциации пользователей с ролями, чтобы упростить авторизацию.

В следующей главе вы познакомитесь с некоторыми расширенными приемами защиты, которые можно использовать для усовершенствования аутентификации и авторизации ASP.NET.

 

 

 

 

 

 

 

предыдущая    следующая страница    вначало главы    оглавление

953

Hosted by uCoz