ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Аутентифікація користувачів за допомогою ASP
         

     

    Інформатика, програмування

    Аутентифікація користувачів за допомогою 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 ()

    sError = ""

    Set cn = New ADODB.Connection

    cn.Open "DSN = reg" 'Встановимо з'єднання

    Set rs = New ADODB.Recordset

    End Sub

    Private Sub Class_Terminate ()

    Set rs = Nothing

    Set cn = Nothing

    End Sub

    'Реєструє користувачів

    Public Sub Register ()

    On Error GoTo Er

    rs.Open "SELECT N_ID FROM TUSERS WHERE S_NAME = '" & sName & " '", Cn, 1

    'Якщо користувач із такою назвою вже є, то

    If rs.RecordCount <> 0 Then

    sResult = 1 'Повертаємо результат

    rs.Close

    cn.Close

    Exit Sub 'Вихід

    End If

    Dim crypt_obj As ECRYPTLib.Cryptor

    Dim crypt_pass As String

    Set crypt_obj = New ECRYPTLib.Cryptor

    crypt_obj.Key = "Visual Basic + 6!" 'Ключ шифрування

    crypt_obj.Text = sPasswd 'Пароль

    crypt_pass = crypt_obj.coder () 'шифруємо

    'Додаємо нову запис

    cn.Execute "INSERT INTO TUSERS (S_NAME, S_PASSWORD) VALUES ( '" & Replace (sName, " '", "''") & _

    "','" & Replace (crypt_pass, " '", "''") & "')"

    sResult = 0 'Все пройшло успішно

    rs.Close

    cn.Close

    Exit Sub

    Er:

    sResult = 2 'Неочікувана помилка

    End Sub

    'Перевірка користувачів

    Public Sub Check ()

    On Error GoTo Er

    rs.Open "SELECT S_NAME, S_PASSWORD FROM TUSERS WHERE S_NAME = '" & sName & " '", Cn, 1

    'Якщо немає користувача з таким ім'ям

    If rs.RecordCount = 0 Then

    sResult = 1

    rs.Close

    cn.Close

    Exit Sub

    End If

    Dim tmp As String

    tmp = rs.Fields ( "S_PASSWORD")

    Dim uncrypt_obj As ECRYPTLib.Cryptor

    Dim uncrypt_pass As String

    Set uncrypt_obj = New ECRYPTLib.Cryptor

    uncrypt_obj.Key = "Visual Basic + 6!"

    uncrypt_obj.Text = tmp

    'розшифровує паролі із БД

    uncrypt_pass = uncrypt_obj.decoder ()

    'Якщо вони не збігаються

    If uncrypt_pass <> sPasswd Then

    sResult = 3

    rs.Close

    cn.Close

    Exit Sub

    End If

    sResult = 0 'Все нормально

    rs.Close

    cn.Close

    Exit Sub

    Er:

    sResult = 2 'Неочікувана помилка

    End Sub

    Компіліруем проект і отримуємо Auth.dll.

    4. Наступний крок - це написання asp і htm сторінок.

    start.htm - сторінка з формою, щоб ввести ім'я та пароль

    Ім'я та пароль повинні містити тільки латинські букви і символи !!!

    Назва

    Пароль

    [ Тут можнозарегістріроваться ]

    check.asp - сторінка для перевірки імені та пароля (написана на VBScript)

    <%

    nm = Request.Form ( "user")

    ps = Request.Form ( "passwd")

    Set obj = CreateObject ( "Auth.Security") 'Створюємо об'єкт нашої DLL

    obj.InitName = nm

    obj.InitPassword = ps

    obj.Check

    res = obj.Result

    If CInt (res) = 0 Then

    Session ( "user") = "OK" 'Встановимо сесійний змінну

    'перенаправити зареєструють. користувача на секретну сторінку ...

    Response.Redirect "secret.asp"

    End If

    If CInt (res) = 2

    Then Response.Write "

    Помилка бази даних! "

    Response.End

    End If

    If CInt (res) = 1

    Then Response.Write "

    Ви не зареєстровані! "

    Response.End

    End If

    If CInt (res) = 3

    Then Response.Write "

    Пароль невірний! "

    Response.End

    End If

    %>

    security.asp - сторінка, що перевіряє сесійний змінну

    <%

    If Session ( "user") <> "OK" Then

    'Якщо сесійний мінлива невірна

    Response.Write "Не зареєстрований користувач! "

    'Завершуємо сценарій

    Response.End

    End If

    %>

    register.htm - сторінка для нових користувачів

    Ім'я та пароль повинні містити тільки латинські букви і символи !!!

    Тут можна зареєструватися ...

    Назва (англ.)

    Пароль (англ.)

    [ На Loginстраніцу ]

    register.asp - сторінка для занесення нових користувачів в БД

    <%

    nm = Request.Form ( "user")

    ps = Request.Form ( "passwd")

    Set obj = CreateObject ( "Auth.Security")

    obj.InitName = nm

    obj.InitPassword = ps

    obj.Register

    res = obj.Result

    If CInt (res) =

    0 ThenResponse.Write

    "Реєстрація пройшла успішно!
    " Response.Write "Ім'я :"&

    nm & "
    " Response.Write "Пароль:" & ps

    & "
    " Response.Write "[ Login ]"

    End If

    If CInt (res) =

    2 ThenResponse.Write "

    Помилка бази даних! "

    Response.End

    End If

    If CInt (res) =

    1 ThenResponse.Write "

    Користувач з такою назвою вже існує! "

    Response.End

    End If

    %>

    secret.asp - секретна сторінка

    Ви потрапили сюди!

    Це секретна сторінка!

    Ось і все. Файл проекту додається: auth.zip

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://www.activex.net.ru/

         

     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status