На главную страницу Написать письмо Добавить в избранное Сделать www.comprog.ru стартовой

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

Setting password on a web page via ASP Ставим пароль на 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 кодом.

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

Приводимый ниже код отвечает этим требованиям.

Код подключаемого файла.

Как использовать.

Скопируйте код в любой текстовый редактор не умеющий форматировать текст (Notepad) и сохраните файл как "login.inc" .

Разместите файл в каталоге с защищаемыми страницами и не забудьте назначить премиссию RX на защищаемые файлы.

Включите ПЕРЕД HTML кодом защищаемой страницы следующий код:

<%@ LANGUAGE="VBSCRIPT" %> <!--#include virtual="login.inc"-->

При использовании данного способа аутентификации используются Coocies! Не забудьте предупредить пользователей о необходимости их использования. Так, как код ASP выполняется на сервере, нет необходимости беспокоиться о совместимости браузеров и это мне представляется весьма большим плюсом данного способа!

  Поиск по сайту
  
Яндекс цитирования