«

»

Lis 03

Wydrukuj to Wpis

Visual Basic-Formularze rejestracji i logowania (ASP.NET, MS Access)

formularze-rejestracji-i-logowania-ASP.NET-MS-Access

Rejestracja i autoryzacja użytkownika przy pomocy bazy danych MS Access. Ten przykład zawiera trzy Web formy (ASP.NET): Registration.aspx, Login.aspx i Secret.aspx. Pierwsza forma prosi użytkownika o wprowadzenie danych rejestracyjnych, sprawdza nazwę użytkownika i hasło za pomocą weryfikatorów (Validator), loguje użytkownika w bazie danych MS Access i przekierowuje użytkownika na dozwoloną stronę Secret.aspx.
Druga forma Login.aspx wymaga nazwy użytkownika i hasła; sprawdza, czy użytkownik posiada taką samą nazwę i hasło jakie zostało wprowadzone do bazy danych.
Jeżeli nie ma użytkownika w bazie, to zostaje przekierowany do Registration.aspx a jeżeli jest to zostaje przekierowany do Secret.aspx. Trzecia forma jest tylko dla zarejestrowanych użytkowników.

Forma Registration.aspx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Public Class Registration
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Page.Title = "Rejestracja"
        Label1.Text = "Rejestracja użytkownika"
        Label2.Text = "Nazwa użytkownika:"
        Label3.Text = "Email:"
        Label4.Text = "URL:"
        Label5.Text = "Hasło"
        Label6.Text = "Powtórz hasło:"
        TextBox4.TextMode = TextBoxMode.Password
        TextBox5.TextMode = TextBoxMode.Password
        Button1.Text = "Rejestracja"
        Dim ErrorMessage As String = "* Pole tekstowe nie może być puste"
        RequiredFieldValidator1.ControlToValidate = "TextBox1" : RequiredFieldValidator1.ErrorMessage = ErrorMessage
        RequiredFieldValidator2.ControlToValidate = "TextBox2" : RequiredFieldValidator2.ErrorMessage = ErrorMessage
        RequiredFieldValidator3.ControlToValidate = "TextBox3" : RequiredFieldValidator3.ErrorMessage = ErrorMessage
        RequiredFieldValidator4.ControlToValidate = "TextBox4" : RequiredFieldValidator4.ErrorMessage = ErrorMessage
 
        CompareValidator1.ControlToValidate = "TextBox4" : CompareValidator1.ControlToCompare = "TextBox5"
        CompareValidator1.ErrorMessage = "* Proszę ponownie wprowadzić wartość."
 
        RegularExpressionValidator1.ControlToValidate = "TextBox2"
        RegularExpressionValidator1.ValidationExpression = "\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
        RegularExpressionValidator1.ErrorMessage = "Wpisz poprawny e-mail. Możesz użyć liter i cyfr oraz kropki, myślnika i znaku podkreślenia jako separatora."
 
        RegularExpressionValidator2.ControlToValidate = "TextBox3"
        RegularExpressionValidator2.ValidationExpression = "http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?"
        RegularExpressionValidator2.ErrorMessage = "Wpisz poprawny adres URL"
    End Sub
 
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        ' Wpis do bazy danych tylko po sprawdzeniu wiarygodności danych:
        If IsPostBack = False Or IsValid = False Then Exit Sub
        ' Linia połączenia z bazą danych:
        Dim LiniaPołączenia As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Web.mdb")
        ' Stworzenie egzepmlarza obiektu Connection:
        Dim POŁĄCZENIA = New OleDb.OleDbConnection(LiniaPołączenia)
 
        Try ' Otwórz połączenie:
            POŁĄCZENIA.Open()
        Catch ex As Exception
            Response.Write(ex.Message)
        End Try
 
        Dim SQL_Pytania As String
        Dim POLECENIE As New OleDb.OleDbCommand
 
        ' Dodaj użytkownika do bazy danych:
        SQL_Pytania = _
            "INSERT INTO [Użytkownicy] ([Nazwa użytkownika],  [E-mail], [URL], [Hasło]) VALUES ('" & TextBox1.Text _
            & "', '" & TextBox2.Text & "', '" & TextBox3.Text & "', '" & TextBox4.Text & "')"
 
        ' Stworzenie obiektu POLECENIE z zapytaniem SQL:
        POLECENIE.CommandText = SQL_Pytania
        'To polecenie jest wymagane, aby dodać wpis w bazie danych:
        POLECENIE.Connection = POŁĄCZENIA
        Try ' Wykonywanie poleceń SQL, czyli wpis w bazie danych:
            POLECENIE.ExecuteNonQuery()
            Response.Write("Użytkownik został dodany do bazy danych.")
        Catch ex As Exception
            Response.Write(ex.Message)
        End Try
        POŁĄCZENIA.Close()
        ' Przekierowanie na dozwoloną stronę:
        Response.Redirect("Secret.aspx")
    End Sub
End Class

Forma Login.aspx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Public Class Login
    Inherits System.Web.UI.Page
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Page.Title = "Logowanie"
        Label1.Text = "Zaloguj się"
        Label2.Text = "Nazwa użytkownika"
        Label3.Text = "Hasło"
        Label4.Text = "" : Label5.Text = ""
        TextBox2.TextMode = TextBoxMode.Password
        Button1.Text = "Zaloguj" : Button2.Text = "Rejestracja"
    End Sub
 
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        Dim Logowanie_Użytkownika As Boolean = False
        ' Linia połączenia z bazą danych:
        Dim LiniaPołączenia As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Web.mdb")
        ' Stworzenie egzepmlarza obiektu Connection:
        Dim POŁĄCZENIA = New OleDb.OleDbConnection(LiniaPołączenia)
        Try ' Otwórz połączenie:
            POŁĄCZENIA.Open()
        Catch ex As Exception
            Label5.Text = ex.Message
        End Try
        ' Wykonywanie poleceń SQL, czyli sprawdza nazwę i hasło:
        Dim SQL_Pytania As String = _
            "Select Hasło FROM [Użytkownicy] WHERE([Nazwa użytkownika] = '" & TextBox1.Text & "') AND (Hasło = '" _
            & TextBox2.Text & "')"
 
        ' Stworzenie obiektu POLECENIE z zapytaniem SQL:
        Dim POLECENIE As New OleDb.OleDbCommand
        POLECENIE.CommandText = SQL_Pytania
        POLECENIE.Connection = POŁĄCZENIA
 
        Try '  Wykonywanie poleceń SQL:
            Dim DataReader As OleDb.OleDbDataReader
            DataReader = POLECENIE.ExecuteReader
            If DataReader.Read = True Then
                Logowanie_Użytkownika = True
            Else
                Logowanie_Użytkownika = False
                Label4.Text = "Nieprawidłowa nazwa użytkownika lub hasło, należy się zarejestrować!"
            End If
        Catch ex As Exception
            Label5.Text = Label5.Text &amp; "<br />" &amp; ex.Message
        End Try
        POŁĄCZENIA.Close()
 
        If Logowanie_Użytkownika = True Then
            ' zostaje przekierowany do Secret.aspx:
            Response.Redirect("Secret.aspx")
        End If
    End Sub
 
    Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
        'Przycisk rejestracja":
        Response.Redirect("Registration.aspx")
    End Sub
End Class

Forma Secret.aspx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Public Class Secret
    Inherits System.Web.UI.Page
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Button1.Visible = False : Button1.Text = "Rejestracja"
        Button2.Visible = False : Button2.Text = "Zaloguj"
        'ustala, z jakej strony wszedłeś na daną stronę 
        If Request.UrlReferrer.LocalPath = "/Login.aspx" Or Request.UrlReferrer.LocalPath = "/Registration.aspx" Then
            Label1.Text = "Witaj"
            Exit Sub
        Else
            Label1.Text = "Nie jesteś zalogowany lub nie masz konta!"
            Button1.Visible = True
            Button2.Visible = True
        End If
        Debug.WriteLine(Request.UrlReferrer.LocalPath)
    End Sub
 
    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        Response.Redirect("Registration.aspx")
    End Sub
 
    Protected Sub Button2_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button2.Click
        Response.Redirect("Login.aspx")
    End Sub

Załączniki do pobrania

Permalink do tego artykułu: http://tmall.com.pl/visual-basic-formularze-rejestracji-i-logowania-asp-net-ms-access/

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć tych znaczników i atrybutów HTMLa: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>