On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Ставим пароль на ASP страницу

Евгений Кондратов

Тэг <Include> позволяет подключить к ASP-файлу внешние файлы. Используя это свойство можно задавать пароль и право доступа на любую страницу выполненную как файл ASP. Грамотный пользователь может возразить: "При работе в NT с файловой системой NTFS права назначаются на уровне OS и чего, мол, огород городить". Все это правильно, но при наличии сколько-нибудь большого количества пользователей с динамически изменяемыми правами администрирование системы превращается в головную боль. А если мы желаем дать пользователю возможность самому назначать права, или предоставляем ему возможность овладевания (ovner) страницей при создании виртуального "дома", или хотим персонализировать его информацию : вопросов больше, чем ответов. Использовать специализированный софт дорого, до и не нужно, можно решить эту проблему используя исключительно возможности ASP.

Итак, приступим. Для хранения имен, паролей и прав (групп) нам понадобится база данных. В отличии от текстового файла база данных имеет массу положительных качеств, я остановлюсь только на одном - доступе. Нет необходимости "расшаривать" базу данных и назначать права на доступ к ней, делать ее видимой пользователям извне, прописывать полные или виртуальные пути. Достаточно создать системный ресурс ODBC, и все ОК, файлы с данными пользователям не видны, однако данные становятся доступными! Создадим новую базу данных и назовем её user.mdb. Я традиционно использую MSACCESS (целостность данных!). Теперь таблицы с данными.

Поля таблицы:

Поле

Тип данных

Кол-во символов

Индекс

Уникальность

Значение по умолчанию

DateTime Date - Нет Нет Date ()
Group Num Int Да Нет 1
Name Text 25 Да Да -
Pas Text 25 Да Да -
Access Boolean Yes/No Нет Нет Yes

Имя таблицы "Account".

Информацию о группах будем хранить в таблице "MyGroup".

Поле

Тип данных

Кол-во символов

Индекс

Уникальность

Значение по умолчанию

IdGroup Num Int Да Да -
NameGroup Text 25 Да Да -

Для обеспечения целостности и обновления данных необходимо связать таблицы по полям MyGroup.IdGroup -- Account.Group в соотношении "один ко многим", это позволит легко администрировать группы пользователей.

Заполним таблицы минимальным количеством данных.

DateTime

Group

Name

Pas

Access

04.08.98

3

Alex hello Yes

04.08.98

2

Mikl hiScat Yes

04.08.98

1

Udjin 123##456??\ Yes

 

IdGroup

NameGroup

1

Administrator

2

Webmaster

3

User

Закроем базу данных и создадим системный ресурс ODBC с именем "user". Имя и пароль на доступ к ресурсу ODBC, соответственно, укажем: IUSER - password. Установите флажок READ-ONLY. Теперь дело за подключаемым файлом с ASP кодом.

Что должен делать этот код:

  • Открывать сессию для пользователя
  • При открытии сессии выводить на экран удаленного пользователя форму авторизации
  • Опрашивать базу с аккаунтами пользователей на предмет совпадения Имени и Пароля
  • В ходе текущей сессии пропускать пользователя на защищаемые страницы и не надоедать пользователю
  • Удалять имя и пароль пользователя из памяти по окончании сессии.


Литература по ASP