ASP.NET Web Matrix - przewodnik

Spis treści

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.

ASP.NET Web Matrix - przewodnik

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:

  • Name - NazwaUzytkownika
  • DataType - varchar
  • AllowNulls - False
  • InPrimaryKey - False
  • FieldSize - 8
  • 10. Do tabeli Uzytkownicy dodaj następną kolumnę o nazwie HasloUzytkownika i następujących właściwościach:

  • Name - HasloUzytkownika
  • Data Type - varchar
  • AllowNulls - False
  • InPrimaryKey - False
  • FieldSize - 25
  • 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.

    ASP.NET Web Matrix - przewodnik
    ASP.NET Web Matrix - przewodnik
    ASP.NET Web Matrix - przewodnik
    ASP.NET Web Matrix - przewodnik
    2. Klikając kartę Data, włącz widok danych - widoczna będzie siatka danych z danymi przechowywanymi w tabeli. Zmiany wprowadzane w siatce danych są wprowadzane bezpośrednio do bazy danych.

    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.