Статья: Аутентификация пользователей с помощью ASP
В этой статье будет рассказано, как зарегистрированным пользователям разрешить доступ к некой секретной asp странице, а посторонним нет.
Постановка задачи: Есть база данных Access 97, в которой хранятся имена зарегистрированных пользователей и их пароли, и есть некая секретная страница, доступ к которой должны иметь только пользователи, занесенные в БД. Пароли в БД требуется хранить в зашифрованном виде. Преимущество такого подхода в том, что поля базы данных, содержащие пароли, не содержат реальных значений и их нельзя использовать при входе в систему.
Для работы нам понадобится ActiveX компонент Ecrypt, который Вы можете взять на этом сайте в разделе ActiveX.
Движемся по шагам:
1. Создайте БД в Access. Имя таблицы - TUSERS. Описание полей:
n_id - Счетчик (Primary Key)
s_name - Текстовый
s_password - Текстовый
Затем создайте DSN для этой БД. При работе с WindowsNT (2000) необходимо создать System DSN, а при работе с Windows95-98 можно создать и User DSN. Дайте DSN имя reg.
2. Напишем ActiveX DLL Auth на Visual Basic 6, которая будет выполнять основную работу. Запустите Visual Basic 6 ивокне New Project выберем ActiveX DLL. Переименуем имя проекта на Auth, а имя класса на Security. Теперь надо подключить необходимые библиотеки: выбираем Project ->References...
Подключаем библиотеки Microsoft ActiveX Data Objects 2.1 Library и ECrypt 1.0 Type Library (см. выше).
3. Далее набираем следующий код:
Option Explicit
Private cn As ADODB.Connection
Private rs As ADODB.Recordset
Private sName As String 'Имяпользователя
Private sPasswd As String 'Пароль
Private sError As String
Private sResult As Integer 'Результат
Public Property Get Result() As Integer
Result = sResult
End Property
Public Property Let InitName(ByVal Name As String)
sName = Name
End Property
Public Property Let InitPassword(ByVal Passwd As String)
sPasswd = Passwd
End Property
Private Sub Class_Initialize()
--> ЧИТАТЬ ПОЛНОСТЬЮ <--