Опубликован: 24.12.2006 | Доступ: свободный | Студентов: 2648 / 207 | Оценка: 4.51 / 4.22 | Длительность: 23:31:00
Урок 13:

Аутентификация пользователей

< Урок 12 || Урок 13: 123456 || Урок 14 >

Ограничение доступа на страницы

К этому моменту страницы регистрации и доступа при тестировании должны работать как нужно. Но поскольку доступ к страницам не ограничен, приложение для регистрации и получения доступа остается бесполезным. В этом упражнении в приложение будут добавлены модели поведения, запрещающие доступ на страницы до тех пор, пока посетитель не введет данные доступа.

  1. Откройте файл profiles.asp.

    Это одна из страниц, для доступа на которую посетитель должен ввести имя пользователя и пароль.

  2. Щелкните в любом месте страницы и вставьте серверную модель поведения Restrict Access to Page (Ограничить доступ на страницу), расположенную в категории User Authentication (Аутентификации пользователя) на панели Server Behaviors (Модели поведения серверов). В группе Restrict based on (Ограничить на основе) включите переключатель Username, password, and access level (Имя пользователя, пароль и уровень доступа).

    Диалоговое окно дает возможность не просто ограничить доступ на страницу. Оно позволяет вводить ограничения в зависимости от уровня доступа пользователя.

    В области Select level(s) (Выбрать уровень) не указано ни одного уровня, так что их следует указать самостоятельно.


  3. Нажмите кнопку Define (Определить). В диалоговом окне Define Access Levels (Определение уровней доступа) поместите курсор в поле Name (Имя), введите имя "visitor" и нажмите кнопку со знаком плюс ("+"). Повторите операцию, чтобы добавить имя admin . Нажмите OK.

    Dreamweaver не проверяет, существуют ли указанные группы на самом деле, так что следует внимательно проверить правильность написания их имен. Эти имена соответствуют доступным значениям в поле userGroup таблицы tbl_users. Зная имена групп, Dreamweaver обеспечивает доступ на страницы пользователям, находящимся в обеих группах, и запрещает доступ пользователям, не состоящим ни в одной.


  4. В диалоговом окне Restrict Access to Page (Ограничение доступа на страницу), удерживая клавишу (Ctrl) (Windows) или (Command) (Macin-tosh), выделите имена "visitor" и "admin", добавленные в область Select level(s) (Выбрать уровень [уровни]). В поле If access denied, go to (Если права доступа определены, перейдите к) укажите страницу login.asp . Нажмите OK.

    На этом шаге решены еще две задачи. Во-первых, обеспечен доступ на страницы пользователям, которые относятся к группе visitor или admin. Если бы возникла необходимость обеспечить доступ на страницы только пользователям из одной группы, нужно было бы выбрать в диалоговом окне только одну группу. После создания раздела для администрирования права доступа к нему будут переданы только пользователям из группы admin – при помощи этого же диалогового окна.

    Другая решенная задача – это перенаправление посетителя на страницу login.asp в случае, если доступ будет отклонен. Это похоже на загрузку страницы доступа при попытке посетителя, который не ввел данные доступа, попасть на закрытую страницу. После того, как данные доступа введены, загружается закрытая страница, на которую посетитель пытался попасть.


  5. Повторите шаги с 1 по 4 для каждого из приведенных ниже файлов:

    profiles_detail.asp

    tourprice.asp

    tourprice_processor.asp

    tours.asp

    tours_detail.asp

    Для доступа на каждую из этих страниц требуется аутентификация.

  6. Сохраните и загрузите на сервер все страницы, над которыми проводилась работа в этом уроке, и, открыв в браузере главную страницу index.asp , попытайтесь получить доступ на страницы с описаниями путешествий и информацией о странах.

    Теперь приложение для аутентификации полностью функционирует. При попытке попасть на закрытую страницу появляется окно доступа. Если при тестировании приложения ранее была зарегистрирована учетная запись, сейчас самое время ей воспользоваться. Для тестирования также подходят адрес электронный почты osiris@allectomedia.com и пароль "osiris". После получения прав доступа автоматически загрузится страница, которая была запрошена изначально.

    Примечание.При использовании PHP версии 4.2 и выше окажется, что после ввода данных доступа вместо запрошенной изначально страницы загружается главная страница. Причина заключается в том, что для работы серверной модели поведения, которая переводит посетителя на запрошенную ранее страницу, требуется включенная настройка register_globals. В PHP 4.2 настройка register_globals отключена. Следует изменить значение настройки в файле php.ini (с off на on), после чего сайт будет работать надлежащим образом. Однако настройка отключена не зря, поскольку она создает потенциальную брешь в безопасности PHP. Таким образом, прежде чем заходить в php.ini и включать настройку, рекомендуется выйти в сеть и поискать решение проблемы.
  7. Откройте страницу index.asp и в нижнюю часть навигационной панели добавьте ссылки на страницы регистрации и доступа: Register (Free!) и Log In.

    Несмотря на то, что при загрузке защищенных страниц посетители переводятся на страницу доступа, а также, что со страницы доступа на страницу регистрации ведет ссылка, посетители должны иметь возможность попасть на эти страницы более коротким путем. Добавление двух ссылок на главную страницу значительно облегчит просмотр сайта как посетителям, так и сотрудникам компании.

Резюме

В этом уроке вы узнали о:

  • существовании долговременных данных;
  • создании страницы регистрации при помощи серверных моделей поведения Insert Record (Вставить записи) и Check New Username (Проверить имя нового пользователя);
  • разработке страницы доступа при помощи модели поведения Log In User (Регистрация пользователя);
  • создании страниц, обрабатывающих ошибки регистрации и ввода данных доступа;
  • добавлении на каждую защищенную страницу сайта серверной модели поведения Restrict Access to Page (Ограничить доступ к странице).

< Урок 12 || Урок 13: 123456 || Урок 14 >
Геннадий Шестаков
Геннадий Шестаков
Беларусь, Орша
Владимир Климин
Владимир Климин
Россия, Гвардейск