ASP.NET Web Matrix - przewodnik

Spis treści

Strona logowania

W tym przykładzie na podstawie szablonu Login Page utworzymy stronę, która umożliwi logowanie użytkownika do systemu. Poświadczenia użytkownika będą sprawdzane z danymi w tabeli Uzytkownicy.

ASP.NET Web Matrix - przewodnik
ASP.NET Web Matrix - przewodnik
ASP.NET Web Matrix - przewodnik
ASP.NET Web Matrix - przewodnik
ASP.NET Web Matrix - przewodnik
1. Z menu File wybierz polecenie New File. Na ekranie pojawi się okno dialogowe Add New File.

2. Z panelu Templates wybierz element Security.

3. Wybierz szablon Login Page.

4. W pole Location wpisz ścieżkę dostępu do pliku.

5. W pole Filename wpisz nazwę pliku meldowanie.aspx.

6. Z listy rozwijanej Language wybierz pozycję Visual Basic.

7. Kliknij przycisk OK. Strona meldowanie.aspx otworzy się w widoku Design.

8. Włącz widok Code.

Uwaga - aplikacja ASP.NET Web Matrix automatycznie utworzy kod obsługi zdarzenia LoginBtn_Click, który sprawdza nazwę użytkownika i jego hasło:

Sub LoginBtn_Click(Sender As Object, e As EventArgs)

If Page.IsValid Then

If (UserName.Text = "[email protected]") And _

(UserPass.Text = "password") Then

FormsAuthentication.RedirectFromLoginPage( _

UserName.Text, true)

Else

Msg.Text = "Invalid Credentials: Please try again"

End If

End If

End Sub

9. W przyborniku przejdź na paletę Code Wizards, a następnie przeciągnij kontrolkę generatora kodu SELECT Data Method na stronę ASP.NET.

Pojawi się okno dialogowe kreatora SELECT Data Code Wizard.

10. Kliknij listę rozwijaną Select a database. Środowisko ASP.NET Web Matrix połączy się z wybranym źródłem danych i umieści na liście rozwijanej nazwy dostępnych baz danych. Wybierz przygotowaną w jednym z przykładów bazę danych Zamowienia.

11. Kliknij przycisk Next.

Pojawi się kolejne okno kreatora - Construct a SELECT Query.

12. Z listy Tables wybierz tabelę Uzytkownicy.

13. W części Columns zaznacz pole wyboru obok pozycji *.

14. Kliknij przycisk WHERE.

Na ekranie pojawi się okno dialogowe WHERE Clause Builder.

15. W panelu Left Operand z listy rozwijanej Table wybierz tabelę Uzytkownicy.

16. Na liście Column zaznacz pozycję NazwaUzytkownika.

Uwaga - opcja ta określa lewy operand klauzuli WHERE.

17. Zaznacz opcję Filter, a w pole filtru wpisz @NazwaUzytkownika (wartość domyślna).

Uwaga - opcja ta określa prawy operand klauzuli WHERE. Wartość tego operandu zostanie przekazana jako parametr klauzuli WHERE w dalszej części przykładu.

18. Kliknij przycisk OK.

Kreator powróci do okna Construct a SELECT Query.

19. Kliknij przycisk AND Clause.

Na ekranie ponownie pojawi się okno dialogowe WHERE Clause Builder.

20. W panelu Left Operand z listy rozwijanej Table wybierz tabelę Uzytkownicy.

21. Na liście Column zaznacz pozycję UserPassword.

Uwaga - opcja ta określa lewy operand klauzuli WHERE.

22. Zaznacz opcję Filter, a w pole filtru wpisz @UserPassword (wartość domyślna).

Uwaga - opcja ta określa prawy operand klauzuli WHERE. Wartość tego operandu zostanie przekazana jako parametr klauzuli WHERE w dalszej części przykładu.

23. Kliknij przycisk OK.

Kreator powróci do okna Construct a SELECT Query.

24. Kliknij przycisk Next.

Na ekranie pojawi się kolejne okno dialogowe kreatora, umożliwiające przetestowanie zapytania.

25. Kliknij przycisk Test Query.

26. W pole NazwaUzytkownika wpisz wprowadzoną do tabeli Uzytkownicy nazwę użytkownika.

27. W pole HasloUzytkownika wpisz wprowadzone do tabeli Uzytkownicy hasło użytkownika.

28. Kliknij przycisk OK.

Zostanie wyświetlony wiersz tabeli Uzytkownicy, odpowiadający podanej nazwie i hasłu użytkownika.

29. Kliknij przycisk Next.

Na ekranie pojawi się kolejne okno dialogowe kreatora, w którym należy nazwać utworzoną funkcję.

30. W pole nazwy metody wpisz ZnajdzUzytkownika.

31. Zaznacz opcję DataSet.

32. Kliknij przycisk Finish.

Okno kreatora zniknie, a w widoku Code pojawi się funkcja ZnajdzUzytkownika. Jako parametry wejściowe funkcja przyjmuje wartości nazwaUzytkownika i hasloUzytkownika, a w wyniku działania zwraca zestaw danych DataSet. Zawiera on rekord z danymi dotyczącymi użytkownika identyfikującego się danymi nazwaUzytkownika i hasloUzytkownika:

Function ZnajdzUzytkownika(ByVal nazwaUzytkownika _

As String, ByVal hasloUzytkownika As String) _

As System.Data.DataSet

Dim connectionString As String = _

"server='(local)'; trusted_connection=true; " & _

"database='Zamowienia'"

Dim dbConnection As System.Data.IDbConnection = _

New System.Data.SqlClient. ř

SqlConnection(connectionString)

Dim queryString As String = _

"SELECT [Uzytkownicy].* FROM [Uzytkownicy] " & _

"WHERE (([Uzytkownicy].[NazwaUzytkownika" & _

"] = @NazwaUzytkownika) AND " & _

"([Uzytkownicy].[HasloUzytkownika] = " & _

"@HasloUzytkownika))"

Dim dbCommand As System.Data.IDbCommand = _

New System.Data.SqlClient.SqlCommand

dbCommand.CommandText = queryString

dbCommand.Connection = dbConnection

Dim dbParam_nazwaUzytkownika _

As System.Data.IDataParameter = _

New System.Data.SqlClient.SqlParameter

dbParam_nazwaUzytkownika.ParameterName = _

"@NazwaUzytkownika"

dbParam_nazwaUzytkownika.Value = nazwaUzytkownika

dbParam_nazwaUzytkownika.DbType = _

System.Data.DbType.String

dbCommand.Parameters.Add(dbParam_nazwaUzytkownika)

Dim dbParam_hasloUzytkownika _

As System.Data.IDataParameter = _

New System.Data.SqlClient.SqlParameter

dbParam_hasloUzytkownika.ParameterName = _

"@HasloUzytkownika"

dbParam_hasloUzytkownika.Value = hasloUzytkownika

dbParam_hasloUzytkownika.DbType = _

System.Data.DbType.String

dbCommand.Parameters.Add(dbParam_hasloUzytkownika)

Dim dataAdapter As System.Data.IDbDataAdapter = _

New System.Data.SqlClient.SqlDataAdapter

dataAdapter.SelectCommand = dbCommand

Dim dataSet As System.Data.DataSet = _

New System.Data.DataSet

dataAdapter.Fill(dataSet)

Return dataSet

End Function

33. Zmień kod obsługi zdarzenia Click kontrolki Button tak, aby sprawdzał podane dane z wynikami funkcji ZnajdzUzytkownika:

Sub LoginBtn_Click(Sender As Object, _

e As EventArgs)

If Page.IsValid Then

Dim userDS As New System.Data.DataSet

userDS = _

ZnajdzUzytkownika(UserName.Text, UserPass.Text)

If userDS.Tables(0).Rows.Count = 1 Then

FormsAuthentication.RedirectFromLoginPage( _

UserName.Text, true)

Else

Msg.Text = "Invalid Credentials: Please try again"

End If

End If

End Sub

34. Zapisz i uruchom utworzoną stronę logowania.

Strona logowania zostanie automatycznie wyświetlona w nowym oknie przeglądarki internetowej.

35. W pola Username i Password wpisz nazwę i hasło użytkownika, które wprowadziłeś do tabeli Uzytkownicy, a następnie kliknij przycisk Login.

Jeśli dane użytkownika zostały wprowadzone poprawnie, to zostanie on automatycznie przekierowany na strony default.aspx.

Uwaga - jeśli użytkownik poda poświadczenia, których nie ma w tabeli Uzytkownicy, to strona logowania wyświetli komunikat o błędzie.

36. Zamknij okno przeglądarki internetowej.