ASP.NET Web Matrix - przewodnik
-
- PCWorld,
- 01.05.2005
Tworzenie aplikacji
W tym rozdziale powiemy, jak przygotować kompletną aplikację internetową ASP.NET. Aplikacja, którą utworzymy w przykładach, udostępnia klientom stronę z informacjami na temat złożonych zamówień.
W aplikacji dostęp do raportu jest ograniczony - mogą z niego korzystać tylko autoryzowani użytkownicy. Poświadczenia uwierzytelniające użytkowników (nazwy kont i hasła) będą przechowywane w bazie danych w tabeli Uzytkownicy (do korzystania z aplikacji użytkownicy nie muszą mieć kont w systemie Windows).
W aplikacji ASP.NET zastosujemy uwierzytelnianie oparte na formularzach HTML - przygotujemy specjalną stronę powitalną, na której użytkownicy będą podawali swoją nazwę konta i hasło. Jest to idealny sposób na zabezpieczenie aplikacji działających w Internecie.
Przykładowa aplikacja jest bardzo prosta (zaprojektowano tylko raport ogólny i szczegółowy), jednak jej kod może stanowić doskonały szablon do utworzenia dowolnej działającej w Internecie i wykorzystującej uwierzytelnianie użytkowników aplikacji ASP.NET.
Tworzenie tabeli użytkowników
W tym przykładzie w bazie danych Zamowienia utworzymy nową tabelę o nazwie Uzytkownicy.
W tabeli tej będziemy przechowywać nazwy i hasła zarejestrowanych użytkowników. Z danych w tabeli będzie korzystać system formularzowego uwierzytelniania ASP.NET, pozwalający na logowanie się użytkowników.

1. Podłącz się do bazy danych Zamowienia, utworzonej w jednym z pierwszych ćwiczeń tego przewodnika.
2. W oknie Data kliknij węzeł Tables, a następnie na pasku narzędzi tego okna kliknij przycisk New Database Object.
Na ekranie pojawi się okno dialogowe Create New Table.
3. W pole tekstowe wpisz Uzytkownicy i kliknij przycisk OK.
4. Na liście kolumn zaznacz dodaną automatycznie kolumnę Column0.
5. W obszarze właściwości kolumny, w pole Name wpisz idUzytkownika.
6. Z listy rozwijanej Data Type wybierz pozycję int.
7. Właściwości AllowNulls przypisz wartość False, właściwości InPrimaryKey - wartość True i IsIdentity - wartość True.
8. Kliknij przycisk New, aby dodać kolejne kolumny.
9. Do tabeli Uzytkownicy dodaj następną kolumnę o nazwie NazwaUzytkownika i następujących właściwościach:
10. Do tabeli Uzytkownicy dodaj następną kolumnę o nazwie HasloUzytkownika i następujących właściwościach:
11. Zapisz tabelę Uzytkownicy.
Tabela Uzytkownicy pojawi się w oknie Data, jako węzeł podrzędny węzła Tables.
Wprowadzanie informacji o użytkownikach
W tym przykładzie do tabeli Uzytkownicy w bazie danych Zamowienia wpiszemy informacje o użytkownikach.
1. Wyedytuj tabelę Uzytkownicy. Aby w środowisku programistycznym ASP.NET Web Matrix dokonać edycji tabeli bazy danych, należy dwukrotnie kliknąć nazwę tabeli w oknie Data.
Pojawi się okno dialogowe edycji tabeli.
![]() |
![]() |
![]() |
![]() |
3. Do tabeli Uzytkownicy wprowadź dwa rekordy danych.
Uwaga - wprowadzony lub zmodyfikowany rekord można zapisać, naciskając klawisz [Enter] lub zaznaczając inny wiersz w siatce danych.
Uwaga - kolumna idUzytkownika ma ustawioną właściwość IsIdentity (automatyczne numerowanie od 1 z krokiem 1). Podczas zapisywania wiersza w bazie danych wartość tego pola wyliczana jest automatycznie.
Uwaga - aby wyświetlić widok definicji tabeli, kliknij kartę Design. Nie można zmienić definicji tabeli, jeśli znajdują się w niej jakiekolwiek dane.
4. Zamknij okno edycyjne tabeli.
Tworzenie strony ogólnej i szczegółowej
W tym przykładzie utworzymy na podstawie szablonu Master-Details Grids nową stronę z danymi pobranymi z bazy danych. Następnie powiążemy utworzoną stronę z tabelami Zamowienia i SkladnikiZamowien, przechowywanymi w bazie danych Zamowienia.
1. Z menu File wybierz polecenie New File. Na ekranie pojawi się okno dialogowe Add New File.
2. Z panelu Templates wybierz pozycję Data Pages.
3. Wybierz szablon Master-Details Grids.
4. W pole Location wpisz ścieżkę dostępu do pliku.
5. W pole Filename wpisz default.aspx.
6. Z listy rozwijanej Language wybierz pozycję Visual Basic.
7. Kliknij przycisk OK. Strona default.aspx otworzy się w widoku Design.
8. Włącz widok Code.
Uwaga - aplikacja ASP.NET Web Matrix automatycznie tworzy kod łączący kontrolkę MasterGrid z procedurą BindMasterGrid i kontrolkę DetailsGrid z procedurą BindDetailGrid.
9. W procedurze BindMasterGrid zmodyfikuj zmienne ConnectionString i CommandText tak, aby odnosiły się do kolumn w tabeli Zamowienia.
Dim ConnectionString As String = _
"server=(local);database=Zamowienia;" & _
"trusted_connection=true"
Dim CommandText As String = _
"select idZamowienia, " & _
"Data, Klient from Zamowienia"
10. W procedurze BindDetailGrid zmodyfikuj zmienne ConnectionString i CommandText tak, aby odnosiły się do kolumn w tabeli SkladnikiZamowien.
Dim ConnectionString As String = _
"server=(local);database=Zamowienia;" & _
"trusted_connection=true"
Dim CommandText As String = _
"select IdSkladnika, Produkt, Ilosc, " & _
"CenaJednostkowa from SkladnikiZamowien " & _
"where idZamowienia = '" & filterValue & "'"
11. Włącz widok Design.
12. Właściwości DataKeyField kontrolki MasterGrid nadaj wartość idZamowienia. Na podstawie wartości właściwości DataKeyField wybierane są wiersze wyświetlane w widoku szczegółowym.
13. Zastąp domyślny nagłówek strony (Master-Detail Grids) kontrolką Label, znajdującą się na palecie Web Controls przybornika.
14. Właściwości ID kontrolki Label nadaj wartość Powitanie.
15. Włącz widok Code.
16. Zmień kod obsługi zdarzenia Page_Load tak, aby właściwości Text kontrolki Label przypisywał nazwę zalogowanego użytkownika, a siatki danych wiązał z odpowiednimi danymi:
Sub Page_Load(Sender As Object, e As EventArgs)
Powitanie.Text = "Witaj, " + User.Identity.Name
If Not Page.IsPostBack Then
' Databind the master grid on the first
' request only (viewstate will restore
' these values on subsequent postbacks).
MasterGrid.SelectedIndex = 0
BindMasterGrid()
BindDetailGrid()
End If
End Sub
17. Zapisz stronę i uruchom ją.
Strona zostanie automatycznie wyświetlona w nowym oknie przeglądarki internetowej.
18. Wybierz wiersz z tabeli MasterGrid. Zwróć uwagę, w jaki sposób zmienia się tabela DetailsGrid po wyborze kolejnych wierszy z tabeli MasterGrid. Nazwa użytkownika może być wyświetlana lub niewyświetlana, w zależności od ustawień systemu. W przypadku większości serwerów nazwa użytkownika nie będzie wyświetlana, ponieważ serwer pozwala na anonimowe przeglądanie stron. W następnych przykładach zmienimy to, wymuszając na użytkowniku zalogowanie się do systemu.
19. Zamknij okno przeglądarki internetowej.