Чтобы решить эту проблему, вам следует избегать использования методов 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