Ćwiczenia z ASP.NET i kolekcje C#

Książka przeznaczona jest dla Czytelników pragnących poznać najnowsze osiągnięcia w zakresie technologii i filozofii pro

529 114 5MB

Polish Pages [215] Year 2004

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Ćwiczenia z ASP.NET i kolekcje C#

Citation preview

Spis treści

W stęp........................................................................................................................................................7 1.

W prow adzenie............................................................................................................................... 9 1.1. 1.2. 1.3.

2.

Technologia A SP.N ET ............................................................................................................... 13 2.1. 2.2. 2.3. 2.4. 2.5. 2.6.

3.

Historia platformy .NET....................................................................................................9 Narzędzia tworzenia aplikacji.N ET................................................................................ 9 Perspektywy technologii .NET.......................................................................................11

Wymagania sprzętowe oraz oprogramowanie.............................................................. 13 Model oprogramowania serwera na platformie .N ET................................................. 13 Wspólne środowisko uruchomieniowe.......................................................................... 15 Kompilacja aplikacji ASP.NET...................................................................................... 16 Instalacja oprogramowania platformy .N E T ................................................................ 19 Podstawowa konfiguracja katalogu głównego aplikacji i serwera IIS ......................20 2.6.1. Katalog wirtualny..................................................................................................20 2.6.2. Pliki startowe aplikacji......................................................................................... 25 2.6.3. Znaczniki kodu ASP.NET....................................................................................26

Podstawowa składnia języka C # 3.1. 3.2. 3.3.

3.4. 3.5.

................................................................................... 27

W prowadzenie....................................................................... 27 Reguły nazewnictwa zm iennych....................................................................................27 28 Typy zm iennych....................................................... 3.3.1. Typ liczbowy......................................................................................................... 29 3.3.2. Typ znakowy (char)............................................................................................ 30 3.3.3. Typ logiczny (bool)...............................................................................................30 3.3.4. Typ łańcuchowy (string)......................................................................................30 3.3.5. Typ tablicowy (array)........................................................................................... 31 3.3.6. Typ wyliczeniowy (enum )...................................................................................31 3.3.7. Typ obiektowy (object)........................................................................................32 Kolejność operatorów...................................................................................................... 32 Deklaracje zmiennej i instrukcje.................................................................................... 34 3.5.1. Deklaracje zmiennej i stałej................................................................................ 34 3.5.2. Instrukcja przypisania.......................................................................................... 34 3.5.3. Instrukcja skoku.................................................................................................... 35 3.5.4. Instrukcja warunkowa if....................................................................-..................35 3.5.5. Instrukcja warunkowa switch........................... 36 3.5.6. Instrukcja pętli fo r................................................................................................37

4

ASP.NET i kolekcje C#

3.6.

3.7.

3.8. 3.9. 3.10. 3.11. 3.12. 3.13. 3.14. 3.15. 4.

Pudow a stron A SP.N E T ............................................................................................................ 57 4.1. 4.2. 4.3. 4.4. 4.5. 4.6.

5.

3.5.7. Instrukcja pętli foreach.................................................................................... 37 3.5.8. Instrukcja pętli while......................................................................................37 3.5.9. Instrukcja pętli do ... while................................................................................. 38 3.5.10.Instrukcja pusta..................................................................................................... 38 Atrybuty.............................................................................................................................. 38 3.6.1. Atrybuty dostępu................................................................................................... 39 3.6.2. Atrybuty przesłaniania......................................................................................... 39 3.6.3. Atrybuty abstract, new i static..............................................................................39 Metody................................................................................................................................ 40 3.7.1. Rodzaje i składnia m etod..................................................................................... 40 3.7.2.Parametry typu: wartościowego, ref, out lub params.......................................... 41 Właściwości........................................................................................................................43 Indeksatory.........................................................................................................................44 Interfejsy.............................................................................................................................46 Delegacje............................................................................................................................47 Obsługa wyjątków.............................................................................................................48 Struktura............................................................................................................................. 49 3.13.1. Konstruktory struktury......................................................................................... 49 Klasa....................................................................................................................................52 3.14.1.Konstruktory i destruktory klasy......................................................................... 52 Pakowanie i odpakowanie obiektów...............................................................................54

Wprowadzenie................................................................................................................... 57 Metoda Write obiektu Responsc...................................................................................... 58 Komentarze.........................................................................................................................59 Kod HTML wysłany z serwera do przeglądarki internetowej.................................... 60 Plik global.asax.................................................................................................................. 62 Aplikacje typu eode-behind..............................................................................................65

Kontrolki serwerowe ASP.NET............................................. 5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7. 5.8. 5.9. 5.10. 5.11. 5.12. 5.13. 5.14.

69

Właściwości kontrolek serwerowych..............................................................................69 Kontrolka Label................................................................................................................. 71 Kontrolka TextBox............................................................................................................72 Kontrolka Im age................................................................................................................ 74 Kontrolka Panel................................................................................................................. 76 Kontrolka Table................................................................................................................. 79 Kontrolka ImageButton.................................................................................................... 81 Kontrolka LinkButton.......................................................................................................83 Kontrolka DropDownList................................................................................................. 85 Kontrolka ListBox............................................................................................................. 87 Kontrolka CheckBox.........................................................................................................89 Kontrolka CheckBoxList.................................................................................................. 90 Kontrolka RadioButtonList..............................................................................................92 Kontrolka C alendar...........................................................................................................94

Spis treści 6.

Kolekcje 6.1. 6.2.

6.3.

7.

C # .................................................................................................................................97

Wprowadzenie..................................................................................................................97 Kolekcje standardowe.................................................................................................... 100 6.2.1. Kolekcja Array List............................................................................................ 100 6.2.2. Kolekcja SortedList.............................................................................................104 6.2.3. Kolekcja Q ueue................................................................................................... 108 6.2.4. Kolekcja Stack....................................................................................................112 6.2.5. Kolekcja HashTablc........................................................................................... 115 6.2.6. Kolekcja BitArray............................................................................................. 119 Kolekcje specjalne..........................................................................................................122 6.3.1. Kolekcja ListDictionary..................................................................................... 122 6.3.2. Kolekcja HybridDictionary................................................................................125 6.3.3. Kolekcja StringCollection..................................................................................129 6.3.4. Kolekcja StringDictionary..................................................................................132 6.3.5. Kolekcja NameValueCollection........................................................................ 136 6.3.6. Kolekcja A rray.................................................................................................... 140

Walidacja danych.....................................................................................................................145 7.1. 7.2. 7.3. 7.4.

8.

5

W prowadzenie.................................................................................................................145 Rodzaje walidacji danych w ASP.NET....................................................................... 145 Wyrażenia regularne.......................................................................................................147 7.3.1. Znaki specjalne.................................................................................................... 147 Kontrolki walidacji danych............................................................................................ 149 7.4.1. Kontrolka RcquiredFieldValidator....................................................................150 7.4.2. Kontrolka Compare Validator............................................................................ 153 7.4.3. Kontrolka RangeValidator.................................................................................157 7.4.4. Kontrolka RegularKxprcssionValidator..........................................................160 7.4.5. Kontrolka CustomValidator...............................................................................163 7.4.6. Kontrolka ValidationSummary......................................................................... 167

Wiązanie danych......................................................................................................................173 8.1. 8.2.

W prowadzenie................................................................................................................. 173 Wiązanie danych prostych..............................................................................................174 8.2.1. Kontrolka Label................................................................................................... 174 8.2.2. Kontrolka TextBox..............................................................................................177 8.2.3. Kontrolka ListBox............................................................................................... 178 8.3. Wiązanie danych złożonych...........................................................................................180 8.3.1. Kontrolka ListBox............................................................................................... 180 8.3.2. Kontrolka CheckBoxList.................................................................................... 183 8.3.3. Kontrolka RadioButtonList................................................................................186 8.3.4. Kontrolka DropDownList..................................................................................188 8.3.5. Obiekt D ataSet.................................................................................................... 190 8.3.6. Kontrolka R epeater.............................................................................................192 8.3.7. Kontrolka DataList..............................................................................................195 8.3.8. Kontrolka DataGrid.............................................................................................197

6 9.

ASP.NET i kolekcje C# Buforowanie danych istronASP.NET.................................................................................201 9.1. 9.2. 9.3.

10.

Wprowadzenie.................................................................................................................201 Buforowanie danych....................................................................................................... 201 Buforowanie stron ASP.NET........................................................................................202 9.3.1. Proces buforowania stron w ASP.NET............................................................203 9.3.2. Metody buforowania stron ASP.NET.............................................................. 204 9.3.3. Dyrektywa OutputCachc....................................................................................205 9.3.4. Buforowanie częściowe stron .aspx................................................................. 207 9.3.5. Podsumowanie....................................................................................................209

Logowanie do aplikacji ASP.NET......................................................................................211 10.1. Wprowadzenie.................................................................................................................211 10.2. Metoda uwierzytelniania - Fortns................................................................................ 212 10.3. Metoda uwierzytelniania - W indows........................................................................... 215

11.

Literatura................................................................................................................................. 221

Skorowidz........................................................................................................................................... 223

1.

Wprowadzenie

1.1.

Historiaplatform y.NET

Pod koniec lat 90. X X w ieku zauw ażono w iele kluczow ych problem ów z tw o­ rzeniem aplikacji internetow ych, w ynikających zc stałego w zrostu w ym agań użyt­ kow ników . N ależało zerw ać z dotychczasow ym i poglądam i na tem at pow staw ania i w draża­ nia aplikacji i stw orzyć zupełnie now e środow isko program istyczne, spełniające ocze­ kiw ania program istów , oraz udostępnić narzędzia, dzięki którym kolejne etapy tw o­ rzenia złożonej aplikacji będą m ogły przebiegać szybko i, co najw ażniejsze, rów nole­ gle. W ym agało to w yelim inow ania najbardziej uciążliw ych i krytycznych fragm entów kodu aplikacji: ręcznego zarządzania pam ięcią i posługiw ania się w skaźnikam i oraz um ożliw ienia szybkiej instalacji i nieskom plikow anej konfiguracji ju ż pracującej apli­ kacji. B ardzo istotnym aspektem , który w zięto pod uw agę, jest bezpieczeństw o i nie­ zaw odność oraz uniw ersalność kodu. Aby spełnić te, zdaw ałoby się bardzo trudne do pogodzenia, ży czenia użytkow ników , na początku 1002 firm a M icrosoft zapropono­ w ała now e, rew olucyjne rozw iązanie, kryjące się pod nazw ą platform y .NET. Koszt tego przedsięw zięcia w yniósł ok. 80% nakładów poniesionych na rozw ój now ych technologii przez firm ę M icrosoft w 2001 roku. Ś w iadczy to o w ielkim zaangażow a­ niu, aby platform a .N E T została zauw ażona i znalazła uznanie w śród program istów i użytkow ników . Z perspektyw y końca 2003 roku m ożna śm iało pow iedzieć, że w szy­ stkie w ym ienione założenia zostały spełnione, choć m oże jeszcze ich realizacja nie je s t doskonała, ale jesteśm y św iadkam i w yraźnego przełom u. N iniejsza pozycja książkow a tylko w pew nym niew ielkim stopniu, ale bardzo w yraźnie pokazuje istotne zalety program ow ania na platform ie .NET. N ajnow sza w ersja V isual Studio .N ET z 2003 r. m a w budow ane szablony, co ułatw ia program ow anie m obilnych urządzeń oraz im plem entow anie usług W W W .

1.2.

Narzędzia tworzenia aplikacji .NET

O becnie je s t na rynku w iele dobrych narzędzi do tw orzenia aplikacji .NET. N aj­ lepsze to, oczyw iście, M icrosoft V isual Studio. N E T 2003 (rysunek 1), które m a w szystkie potrzebne funkcje, bardzo ułatw iające pisanie, testow anie, analizow anie

10

ASP.NET i kolekcje C#

i urucham ianie kodu aplikacji o ra / dodatkow e narzędzia do optym alizacji i dcascm blacji kodu. V isual Studio. N E T 2003 ułatw ia tw orzenie nie tylko aplikacji A S P .N E T , ale także aplikacji okienkow ych W indow s, usług W W W oraz udostępnia szablony do tw orzenie plików różnych typów , niezbędnych w aplikacji, np. plików konfiguracyj­ nych, bibliotek, aplikacji projektów , usług W W W , urządzeń m obilnych. P oczątkują­ cym program istom , którzy nigdy w cześniej nie pracow ali w środow isku w izualnym , np. V isual Basic, V isual C ++, nauczenie się obsługi narzędzia V isual Studio. N E T m oże zabrać nieco czasu, dlatego dobrym rozw iązaniem je st zainstalow anie na p ierw ­ szym etapie nauki program u W eb M atrix lub edytorów T extP ad, P ajączek 2000 i N otatnik oraz przeglądarki internetow ej Internet E xplorer w w ersji 6.0, która je st interfejsem podczas testow ania aplikacji. m a s s iii £ile

£dit

V'©w

a n » B a s ig Project

Debug

/¿p - g£| * Qär ISI

T o ols

W in d o w

b: * U4 ......

' Ir

+* *+ © El tö ifc Qa ¿Jej;

Help

O x

S ta r t P ag e

Solution Explorer

Solution ‘Solutionl1(0 projects)

G e t S ta r te d

P r o je c ts

F in d S a m p le s

What*s New

^

Online C om m u n ity Headlines

S olution ;

0

Search Online Downloads

O p e n P r o je c t

Solution Explorer

D y n a r* Help

Class Viw i 9

I X

v] 4 *

N e w P r o je c t Ijd Help Solution EvpVyer Usinq Soluticn Explorer Managing Solutions. Projects, and frnT

XML Web S ervices Web Hosting My Profile

zJ

Jd"

■Zf Sam ple« Vty j ^ Studio Samples

ai

-rJ

Ready

Rysunek 1. Okno startowe Visual Studio .NET Interesującą propozycją jest, przestaw iony na rysunku 2, niew ielki program W eb M atrix (ok. 1,2 M B), stanow iący pośrednie rozw iązanie pom iędzy V isual Studio .N ET a zw ykłym edytorem znaczników A SP.N ET. M a on w budow any prosty serw er W W W , co pozw ala, po zainstalow aniu M icrosoft .N ET F ram ew ork, na pisanie i testo­ w anie prostych aplikacji A SP.N ET, naw et bez konieczności uruchom ienia Serw era ITS.

Wprowadzenie

11

Is M ic r o so ft ASP .N E T W e b M a t r ix Fite

Edit

! £?|

View

Format

G9

Layout

HTML

Cł «'*

Workspace

loctó

Window

Pdp

AS*i?V.fc

; ■/ iH

9} HTMLEtemerii

ypt key'iOids-tn

vile* !•»>,> *

ł

..

O K 1330

a

ocal intranet

Rysunek 12. Okno aplikacji Cwl po podaniu naz.wy serwera: localhost S po só b d ru g i W pisz na pasku adresu U R L przeglądarki adres z praw dziw ą nazw ą serw era - Celeron700: h ttp ://C elero n 7 0 0 /C w l/C l.asp x - rysunek 13. Podanie takiej ścieżki przez internet spow oduje w yśw ietlenie kom unikatu inform ują­ cego, że aplikacja nic została odnaleziona. 3 h ttp :/./c e le ro n 7 0 0 /C w l/C 1.a sp x File

Edit

>B ack * Address

View «4

F^vorfces

lools

Help

[ T Personal Bar

m h ttp ://Celeron700/Cw 1/C 1 aspx

3

Search

¿Go ! Links ”

O K 1330

W~

^

Local intranet

Rysunek 13. Okno aplikacji Cwl po podaniu nazwy serwera - Celeron700 Sposób trzeci W pisz na pasku adresu URL przeglądarki adres IP serw era 192.50.100.1 h ttp ://1 9 2 .5 0 .100.1/ C w 1/C 1.aspx - rysunek 14. Podanie takiej ścieżki zaw sze spow oduje w yśw ietlenie strony .aspx.

Technologia ASP.NET

25

3 h»p://lucatho*t/Cwl/f I n*px - Microsoft File

£ d*

View

Back - »*

Favorites

;.r)

jM z i W0Ęjfa

Help

1

Personal Bar

. — —-------

¿dress)

Tools

,

.^ S e a rc h



, Si----------------....................................

http://192.50.100.1/C wl/C l.aspx|

''I

: Links ”

OK 1330 Done

Local intranet

Rysunek 14. Okno aplikacji C w l po podaniu numeru IP serwera 192.50.100.1

Podsumowanie K ażda z m etod, polega na w pisaniu do przeglądarki internetow ej innego adresu. •

h ttp ://lo calh o st/C w l/C l.a sp x m oże być użyty tylko na serw erze W W W .



h ttp ://C elero n t/C w l/C l.asp x m oże być użyty tylko na serw erze W W W lub w sieci LAN.



h ttp ://192.50.100.1 /C w l/C l.a sp x m oże być użyty tylko na serw erze W W W , w sieci L A N lub w sieci Internet.

2.6.2.

Pliki starto w e aplikacji

A dm inistrator serw era W W W m oże spow odow ać, że nazw a pliku startow ego aplikacji A S P .N E T nie będzie w ogóle potrzebna - w ystarczy podać na pasku adresu przeglądarki internetow ej sam ą nazw ę katalogu w irtualnego aplikacji - rysunek 15. 15

h t t p : / / 1 9 2 .S 0 . i 0 0 4 / C W

File

Edit

View

v-j Back » Address

|fc ]

Favorites .J

i / - ! " « c r < * *■

Tools

J]

h ttp ://l9 2 .5 0 .1 0 0 . 1 / C

Ï

r

- i n

Personal Bar w l/

-^ S e a rc h

▼ j

c>G o

..........................................................

OK 1330 Done

i x

i

Help >>

>y

Links J z

•Ù

j

i

internet

Rysunek 15. Okno aplikacji Cwl po podaniu tylko nazwy katalogu aplikacji W IIS 5.0 dom yślne są następujące nazw y plików startow ych aplikacji: •

D efault.aspx,



iistartasp



D cfault.asp



D efault.htm .

26

ASP.NET i kolekcje C#

Aby dodać nazw ę w łasnego pliku startow ego aplikacji, co jest zc w zględów bez­ pieczeństw a zalecane, należy w program ie IIS w ybrać kolejno: S tart—»Program s-* A dm inistrative T o o ls-»Internet Services M anager, kliknąć D efault W eb Site, a następ­ nie ppm. C w l -»Properties-» Docum ents-»add...-» Default docum ent nam e: C l.asp x -» O K -»OK. W tedy lista dom yślnych nazw plików zostanie poszerzona o plik startow y C l.asp x . Jednak ze w zględów bezpieczeństw a należy usunąć w szystkie zbędne stan­ dardow e pliki startow e. 2.6.3.

Z naczn iki kodu A S P .N E T

Podczas pisania kodu aplikacji m ożna używ ać następujących par znaczników : •

znaczniki obiektów A SP.N ET, np. Response,



znaczniki kontrolek A SP.N ET,





< % @ .............................. %> - znaczniki dyrektyw y A SP.N ET.



- znaczniki kom entarza w języku CK i na stronie .uspx.

- znaczniki w iązania danych,

Kod w ew nątrz znaczników A SP.N E T przetw arzany je st po stronie serw era.

3.

Podstawowa składnia języka C#

3.1.

Wprowadzenie

Język C # jest, podobnie jak V B .N E T , zarządzalny. B ędziem y się nim posługi­ w ać, poznając technologię A SP.N ET. O bjętość niniejszego w ydania pozw ala tylko na bardzo zw ięzły opis składni C#, ale w ystarczający dla zrozum ienia podanych ćw iczeń. Język C # został opracow any na podstaw ie języków : C++, Java i Pascal. O soby pro­ gram ujące w C + + lub Javie nie pow inny m ieć w iększych trudności z je g o opanow a­ niem . Dzięki system ow i zarządzania pam ięcią przez CLR (w spólne środow isko uru­ chom ieniow e) nie m a w zasadzie potrzeby tw orzenia destruktorów obiektów (chociaż jest to m ożliw e) - obiekty usuw ane są z pam ięci autom atycznie tylko w tedy, gdy nie są ju ż potrzebne.

3.2.

Reguły nazewnictwa zmiennych

N ie należy zakładać, że każdy plik aplikacji A S P .N E T zostanie napisany tylko w języku C#. D latego, aby kom pilacja w szystkich plików należących do aplikacji, niezależnie od języ k a program ow ania, została popraw nie przeprow adzona, należy p rzestrzegać poniżej w ypunktow anych zasad nazew nictw a zm iennych. W przeciw nym w ypadku aplikacja m oże nie zostać skom pilow ana, a naw et później działać w sposób nieprzew idyw alny i trudno będzie stw ierdzić, dlaczego. T ak się m oże zdarzyć zw łasz­ cz a w tedy, gdy aplikacja je st napisana przy użyciu w ięcej niż jed n eg o języ k a progra­ m ow ania. np. gdy korzysta z gotow ych (skom pilow anych) złożeń pochodzących z obcych firm . Usunięcie konfliktów nazew nictw a m oże być w tedy praw ie niem ożliwe. R eguły n azew nictw a zm iennych •

S tandard CLS w ym aga, aby nazw y użyte w deklaracji publicznych składow ych klasy (np. w łaściw ości, m etody) różniły się od siebie co najm niej jednym zna­ kiem , a nie w ielkością liter (co jest dopuszczalne w C # i C ++). Zapew ni to pełną zgodność z innym i językam i, np. V B .N ET.



W szystkie nazw y pól, m etod, w łaściw ości itp. m uszą się zaczynać literą lub znakiem podkreślenia (dolny m yślnik).



N azw a nie m oże zaw ierać spacji, m yślników , kropek.

28

ASP.NET i kolekcje C#



M aksym alna długość nazw y to 255 znaków.



Drugi i następny znak nazw y m oże być dow olny, np. litera, cy fra lub znak



Z aleca się nie stosow ać w nazw ach zm iennych polskich liter.



U żyw anie słów kluczow ych i nazw zastrzeżonych je st zabronione.



Jeżeli koniecznie trzeba użyć słow a kluczow ego jako nazw y, m usi być ono poprzedzone znakiem @.



N azw y identyfikatorów publicznych oraz klas i konstruktorów pow inny się ro z­ poczynać dużą literą.



N azw y identyfikatorów niepublicznych pow inny się rozpoczynać m ałą literą.



N azw y interfejsów pow inny na początku zaw ierać literę I, np. lspis.



N otacja w ęgierska jest niepotrzebna (z w yjątkiem nazw interfejsów ).



P ierw sza litera każdego w yrazu w chodzącego w skład nazw y zm iennej pow inna być pisana dużą literą, z w yjątkiem pierw szego w yrazu w nazw ach zm iennych niepublicznych, np. 1 i czbaS tudentow .

3.3.

Typy zmiennych

Typ zm iennej określa rodzaj i zakres w artości, jak ie m oże ona przyjm ow ać w kodzie aplikacji, im plikuje także operacje, w jak ich m oże brać udział zm ienna, oraz relacje pom iędzy dw om a zm iennym i tego sam ego typu. M ożna bezpośrednio porów nać tylko zm ienne dow olnego typu liczbow ego, np. l ong z i n t . B ezpośrednie porów nanie dw óch zm iennych typu nieliczbow ego nie je st m ożliw e. Program ując na platform ie .N ET, należy dokładnie kontrolow ać typy zm iennych, poniew aż kom pilator rygorystycznie w ychw ytuje w szelkie niezgodności typów . N ie ­ jaw n a konw ersja typów przez kom pilator jest ograniczona do m inim um , dlatego zaw ­ sze należy sam em u, za pom ocą standardow ych m etod przeprow adzać konw ersje typu np. s t r i n g , a i n t i odw rotnie. Jedynie w łaściw ość T ex t obiektu Label oraz m etoda Wr i t e obiektu Response dość często autom atyczne konw ertują typ zm iennej na typ łańcuchow y ( s t r i n g ) w celu w yśw ietlenia w artości w oknie przeglądarki interneto­ wej. W szystkie typy dzielą się na: -

proste - liczbow e, string, char, bool, enum ;

-

złożone - klasy i struktury; m ogą zaw ierać inne zm ienne dow olnego typu.

T ypy zm iennych dzielą się rów nież na typy standardow e - dostępne w p rzestrze­ niach nazw zaw artych w ew nątrz przestrzeni nazw S y st e m w .N E T F ram ew ork i typy w łasne - utw orzone przez użytkow nika.

Podstawowa składnia języka C# 3.3.1.

29

Typ liczbow y

W tabeli 1 przedstaw iono typy liczbow e wraz z ich rozm iarem (w bajtach) oraz przybliżonym zakresem wartości. Typy liczbow e podzielono na całkow ite i zm ienno­ przecinkow e (rzeczyw iste). W szystkie typy liczbow e są taktycznie strukturą, dlatego m ają m etody i w łaściw ości, np.: •

MaxVal ue - w artość m inim alna,



M i n V a l u e - w artość m aksym alna,



T o S t r i n g ( ) - konw ersja na typ s t r i n g .

Tabela 1. Typy liczbowe Skrócona nazwa typu (nazwa przestrzeni nazw)

Rozmiar w bajtach

Przedział wartości

Liczby całkowite sbyte (System.Sbyte)

1

-1 2 7 -+ 1 2 8

byte

(System.Byte)

1

0 - +255

s hort ( S y s t e m . I n t l 6 )

2

-32767-+ 32768

ushort (System.U i n 1 16)

2

0 -+ 65535

int

( S ys tem.I ns t32)

4

±2,147 *109

u1nt

(System.Uint32)

4

+4,294*1 O’

long

(System.I nt64)

8

±9,222 *10"'

ulong (System.U1nt64)

8

0 - 1,833 * 1019

decimal

(System.Decimal)

16

±7.9228162514264337593543950335

decimal

(System.Decimal)

16

od ±1,0 * 10'2* do ±7,9* 1028

float

(System.S1ngle)

4

od ±5,0 * 1045 do ±3,4* 1038

double

(System.Double)

8

od ±5,0 * 10'324 do ±1,9*10308

Liczby zmiennoprzecinkowe

Uwaga! Typ decimal może występować jako typ całkowity (dokładny) lub zmiennoprzecin­ kowy. O znaczenia literow e liczb Jeżeli chcesz zm ienić jaw n ie typ zm iennej liczbow ej, to po ostatniej cyfrze um ieść literę, k tó ra jednoznacznie określi now y typ, np.: float p - 3 . 1 4 f ; // f d ec i ma l z - 3 0 0 2 . 8 7 m : // m double y - 5E-03; // E //

l i c z b a typu f l o a t l i c z b a t y p u deci mal w y k ł a d n i k p o t ę g i o p o d s t a w i e 10. Wyni k: 0 . 0 0 0 5 .

30

ASP.NET i kolekcje C#

3.3.2.

Typ zn a ko w y (char)

Typ znakow y reprezentuje pojedynczy znak U nicode i m usi zostać ujęty w parę pojedynczych cudzysłow ów . W standardzie U nicode typ c h a r zajm uje 2 bajty. Aby przekonw ertow ać zm ienną typu s t r i n g na typ c h a r trzeba posłużyć się m etodą C h a r . P a r s e ( ): c h a r C - C h a r . P a r s e ( " B " ): 2 bajty

char lub System. Char

3.3.3.

np. 'a'; T ; \u0091’; ,x0091'; V ;

T yp logiczny (boolean)

Z m ienne typu logicznego m ogą przyjąć tylko jedną w artość: t r u e lub f a l s e i zajm ują 1 lub 2 bajty - w zależności od rodzaju procesora. W ybrane m etody i w łaściw ości operujące na typie b o o l : •

f a l s e S t r i ng - odczytuje i reprezentuje w artość f a l se jak o s t r i n g ,



f a l s e S t r i ng - odczytuje i reprezentuje w artość t r u e ja k o s t r i ng,



T o S t r i n g C ) - konw ertuje w artość logiczną na s t r i n g .

U w aga! Jaw ne, bezpośrednie konw ersje zm iennej typu logicznego na typ liczbow y i zm iennej liczbow ej na typ logiczny są niedozw olone. T ylko za pom ocą standardo­ wych m etod m ożna przeprow adzać konw ersję na typ logiczny b o o l . bool lub Sys tem. Bool ean

3.3.4.

1 lub 2 bajty

true

lub f a l s e

Typ łań cu c h o w y (string)

T yp s t r i n g jest typem obiektow ym . Z m ienna łańcuchow a (typu s t r i n g ) m usi być ujęta w parę cudzysłow ów . K lasa S y st em. S t r i ng nie zaw iera żadnych m etod pozw alających na zm ianę zaw artości zm iennej typu s t r i n g , dlatego po dodaniu do niej dow olnego łańcucha tw orzony je st niejaw nie now y obiekt typu s t r i n g . N ajlepiej jed n ak posłużyć się m etodam i klasy S t r i n g B u i 1 der, dzięki której m ożna dopisyw ać lub usuw ać dow olne fragm enty łańcucha, unikając konieczności tw orzenia now ego obiektu. Uw aga! Znak @- oznacza, że występujący po nim ciąg znaków (ujęty w cudzysłow y) m a być interpretowany dosłownie przez kompilator, np. s t r i n g s - @ " / n / / / ' A S P ’ / b "; . s t r i n g lub S y s t e m . S t r i n g

min. 20 bajtów

np. "ASP1'; "234";

Podstawowa składnia języka C# 3.3.5.

31

T yp ta b lico w y (array)

T yp tablicow y określa tablice, czyli uporządkow any zbiór elem entów tego sa­ m ego typu. T ablice m ogą być jed n o - lub w ielow ym iarow e. T ablice w ielow ym iarow e dzielą się na prostokątne, o stałej długości każdego w ym iaru, lub „poszarpane” 0 nieokreślonej w definicji długości każdego w ym iaru. E lem enty tablicy indeksow ane (pozycjonow ane) są od zera, dlatego rozm iar tablicy je st rów ny liczbie w szystkich elem entów m inus 1. K lasa S y s t e m . A r r a y je st rzadko bezpośrednio używ ana, a od­ w ołanie się elem entu do tablicy typu A r r a y np. T a b [3 ] pow oduje naw et błąd kom pi­ lacji. G łów nym celem tej klasy je st dostarczenie statycznych m etod, np. A r r a y . Copy, A r r a y .CopyTo, pozw alających na przetw arzanie kolekcji i dow olnych zm iennych tablicow ych. O to przykłady deklaracji tablic: 1n t [ J Tabl - C 2 . 3 . 6 . 8 3 ; i n t [ U Tab2 - new i n t C 4 ] ( 2 , 3 , 6 , 8 ) ; // t a b l i c a z a w i e r a 4 e l eme n ty S y s t e m . A r r a y Tab3 - new i n t [ ] ( 2 , 3 , 6 , 8 3 : // o d w o ł a n i e T a b 3 [ 1 3 // g e n e r u j e b ł ą d k o m p i l a c j i intC,] Tab4 - new i n t C , ] C C 2. 33 , C6, 83 3: // t a b l i c a dwuwymiarowa c h a r C , ] Tab5 - C C ' a f , ' A ' 3 , C ' b ' , ' B , 33: // t a b l i c a p r o s t o k ą t n a // dwuwymiarowa s t r i n g [ 3 Tab6 - C " a " , " A " . " b " . " B " , " c " , " C C C " 3 ; // t a b l i c a n a p i s ó w o b j e c t f ] Tab7 - C " a " ,1, " b " , 2, " c " , ' x 1 3; // t a b l i c a znaków

O dczytanie elem entu tablicy polega na podaniu w artości indeksu (liczone od ze­ ra), np.: L a b . T e x t + - " < H 4 > " + T a b l C l ] + T a b 3 . L e n gt h + T a b 4 [ l . l ] + T a b 5 [ l , 1 3 + Tab6C13+ T a b 7 [ 1 3 ;

W ynik: 348BA1 Przykład tablicy „poszarpanej” : i n t [ , 3 t a b P - new i n t C 2 3 C 3 ; t a b P C O ] “ new i n t L33; t a b P C l ] - new i n t

3.3.6.

[53:

T yp w ylic zen io w y (enum )

T y p w yliczeniow y enum określa zestaw dow olnych nazw zw anych literałam i, w śród których m ogą być naw et słow a kluczow e, ale w tedy m uszą być one poprze­ dzone znakiem @ np.@byte. Z n ak @nie jest brany pod uw agę podczas przetw arzania, a służy jed y n ie celom identyfikacji. W artości (nazw y) poszczególnych literałów po zadeklarow aniu nie m ogą się zm ieniać, podobnie ja k stałe. L iterały są indeksow ane od 0, co 1 ja k o typ b y te , i n t 3 2 lub i n t 6 4 - dom yślnie integer.

32

ASP.NET i kolekcje C# S kładnia typu w yliczeniow ego:

enum n a z w a _ z m i e n n e j : t y p _ c a ł k o w i t y C e l e m e n t _ w y l i c z e n i a = w a r t o ś ć }

Poniższy przykład pokazuje różne w arianty deklaracji typu w yliczeniow ego: p u b l i c enum S s a k i :

3.3.7.

byteC Lew-9 . Dzi k - 2 ,Wi 1 k - 2 7 , K ot - Le w, Pi es , My s z , @b yt e }

Typ o b iektow y (object)

O biekt o b j e c t m oże być przechow yw any na stercie lub na stosie. Jeżeli obiekt znajduje się na stercie, to m oże się odw oływ ać do niego kilka zm iennych (referencyjnych), a jeśli na stosie, to tylko jedna, ta, przez k tórą został zadeklarow any. O biekt ze sterty usuw any je st zaw sze autom atycznie przez system zarządzania pam ięcią (G arbare C ollection - GC) w chw ili, gdy nie m a do niego żadnych odw ołań. ob j ec t lub Sys tem. Obj ect

3.4.

od Odo 8 bajtów '+ rozm iar obiektu

Kolejność operatorów

W języ k u C # kolejność przetw arzania polecenia zależy od priorytetu operatorów i je st następująca: ()

—w yrażenia w naw iasach okrągłych, -

kropka - sym bol dostępu do składow ej obiektu,

->

- m yślnik i znak większości - w skaźnik dostępu do składowej obiektu,

f()

- w yw ołanie m etody,

t[i]

- naw iasy kw adratow e indeksow ania,

x++

- d w a znaki dodaw ania - zw iększenie w artości zm iennej x o 1, do p ie­ ro po w ykonaniu na zm iennej x dow olnej instrukcji,

x --

- d w a znaki odejm ow ania - zm niejszenie w artości zm iennej dopiero po w ykonaniu na zm iennej x dow olnej instrukcji,

new

- słow o kluczow e new,

stackalloc

- alokacja tablicy na stosie, w łączenie w eryfikacji zakresu w artości,

checked u nchecked

- w yłączenie w eryfikacji zakresu w artości,

+

—znak dodaw ania, -

!

znak odejm ow ania,

- w ykrzyknik - negacja, -

tylda - negacja bitow a,

xo

1,

Podstawowa składnia języka C#

33

++x

- dw a znaki dodaw ania - zw iększenie w artości zm iennej x o 1, przed w ykonaniem na zm iennej x dowolne; instrukcji,

--x

- dw a znaki odejm ow ania - zm niejszenie w artości zm iennej x o 1, przed w ykonaniem na zm iennej x dow olnej instrukcji,

*

- gw iazdka - znak m nożenia,

/

- praw y ukośnik - znak dzielenia,

%

- znak procentu - reszta z dzielenia,

>

—dw a znaki w iększości - przesunięcie bitów w praw o,




- znak w iększości - relacja w iększości.

- znaki w iększości i rów ności - relacja w iększe lub rów ne,

is

- zgodr.ość lub rów ność typów , - d w a znaki rów ności - relacja rów ności,

! -

- w ykrzyknik i znak rów ności - relacja nierów ności,

&

- am persand - operator i - AND bitow o,

|

—belka — operator 1 ub - OR bitow o,

&&

- d w a am persandy - operator i - AND logicznie, -

znaki ró w n o ści - operator przypisania,

*-

—gw iazdka i znak rów ności - operator m nożenia i przypisania,

/-

- praw y ukośnik i znak rów ności - operator dzielenia i przypisania,

%-

- znaki pro cen tu i znak rów ności - operator d zielenia z resztą i przypi­ sania,

+-

- znaki dodaw ania i znak rów ności - operator dodaw ania i przypisania, -

znaki odejm ow ania i znak rów ności - operator odejm ow ania i przy­ pisania,

-

- dw a znaki w iększości i znak rów ności bitow ego i przypisania,

&-

- am peisand i znak rów ności - operator i logicznie i przypisania,

1=

- belka

i znak

operator przesunięcia

rów ności - operator 1 ub lo g iczn ie i przypisania.

34

3.5.

ASP.NET i kolekcje C#

Deklaracje zmiennej i instrukcje

W języku C # są cztery rodzaje instrukcji: przypisania, w arunkow a, pętli i pusta. S tanow ią podstaw ę w szystkich algorytm ów kodu program u aplikacji. 3.5.1.

D eklaracje zm iennej i stałej

K ażda linia kodu instrukcji lub deklaracji m usi być zakończona średnikiem , np. x - l ; D eklaracja zm iennych naz wa _ty p u

n az wa_z mi ennej np. i n t x ;

string

s;

D eklaracja stałej c o n s t n az wa _t y p u

3.5.2.

n a z w a _ s t a ł e j np. c o n s t i n t x;

const

string

s;

In stru kcja przypisania

Instrukcja przypisania określa w artość zm iennej lub stałej za pom ocą znaku ró w ­ ności. n az wa_z mi ennej z n a k _ r ó w n o ś c i

wartość

średniknp.

x=10;

s="ASP.NET";

lub naz wa_typu n az wa_z mi ennej z n a k _ r ó w n o ś c i strin g s - "A S P .NET";

w a r t o ś ć ś r e d n i k np. i n t x=10;

Blok instrukcji Blok instrukcji składający się z co najm niej dw óch instrukcji m usi być zaw arty w ew nątrz pary naw iasów klam row ych C 3, np. Cx =l ; s="A SP"; d - 3 . 14; 3. Jeżeli blok składa się tylko z jednej instrukcji (naw et bardzo złożonej), to nie trzeb a używ ać naw iasów klam row ych - choć jest to często zalecane, poniew aż zw iększa czytelność kodu. T ylko pojedyncza instrukcja m oże, ale nic m usi być ujęta w naw iasy klam row e. Uwaga! W poniższych opisach składni term in i n s t r u k c j e l ub używ any jest zam iennie i oznacza je d n ą lub w ięcej instrukcji.

bl o k

instrukcji

U waga! Z m ienna deklarow ana w ew nątrz bloku pętli lub bloku instrukcji nie jest w idziana na zew nątrz, a jej użycie poza blokiem instrukcji lub pętlą pow oduje błąd kom pilacji.

Podstawowa składnia języka C# 3.5.3.

35

In stru kcja skoku

Instrukcje skoku przeryw ają działanie pętli, bloku instrukcji lub m etody i przeka­ zują sterow anie poza dotychczasow y fragm ent kodu program u albo w konkretne i oznaczone m iejsce, np. początek pętli. Jedynie częste stosow anie instrukcji go t o jest w ątpliw e, ze w zględu na chaos, jak i m oże ona w prow adzić do kodu, dlatego w ielu program istów naw et zabrania jej używ ania. Pozostałe instrukcje skoku są bardzo przydatne i należy jc stosow ać bez w ahania. L ista instrukcji skoku: • break;

Przeryw a w ykonyw anie instrukcji whi l e , f o r lub swi t ch.

• continue;

Pow oduje natychm iastow e w ykonyw anie kolej­ nej iteracji dow olnej pętli.

• go t o e t y k i e t a ; lub go t o w y r a ż e n i e _ s t a ł e _ c a s e

Przenosi w ykonyw anie program u do m iejsca oznaczonego etykietą. W praktyce instrukcja got o nie pow inna być nigdy użyta.

• return

W yjście z m etody proceduralnej lub wyjście z m etody funkcyjnej ( r e t u r n x).

• t hrown

Z głoszenie w łasnego w yjątku np. t hr own new F x c e p t i o n ( " Wi c k n i c może być < 0 " ) ;

3.5.4.

In stru kcja w aru n ko w a

if

in stru k cja w arunkow a i f spraw dza praw dziw ość dow olnego w yrażenia logicz­ nego, czyli takiego, które m oże przyjm ow ać tylko dw ie w artości: t r u e (praw da) lub f a I se (fałsz). W ew nątrz instrukcji i f m oże pojaw ić się kolejna instrukcja i f . if

( naz wa _z mi e n n ej = ( instrukcje; }

wartość)

C I SC

C instrukcje;

}

N aw ias okrągły po słow ie i f jest obow iązkow y, natom iast człon e l s e - opcjo­ nalny. O peratory logiczn e (porów nania, relacji, zgodności typów ) W ew nątrz w yrażenia logicznego m ożna użyć jednego z poniższych operatorów logicznych. Jeżeli po słow ie i f nie podam y żadnego operatora logicznego, w tedy d o ­ m yślnie kom pilator przyjm uje, że spraw dzany je st w arunek logiczny t r u c np. i f ( J e s t —t r u e ) a = l ; jest rów now ażne instrukcji i f ( J e s t ) a-l;

36

ASP.NET i kolekcje C#

Porównania

Relacji

Zgodności typów

== równości

< mniejszości

większości

>= większości lub równości

3.5.5.

1s

Instrukcja w aru n ko w a sw itch

Instrukcja s w i t c h pozw ala na bardziej czytelny i zw ięzły zapis w ielu instrukcji w arunkow ych (zam iast posługiw ania się instrukcjam i i f ). Jednak jej użycie jest d o z ­ w olone tylko z typam i podstaw ow ym i, np. 1nt, s t r l n g , i w ym aga spraw dzania tylko w artości w yrażeń stałych. Po każdym bloku instrukcji m usi w ystąpić jed n o z n astęp u ­ jących słów kluczow ych, określających instrukcję skoku: br e a k, c o n t i n u e , goto, thrown lub r e t u r n , najczęściej pierw sze i ostatnie. P odinstrukcja d e f a u l t je st o p ­ cjonalna i w ykonyw ana je st tylko w tedy, gdy nic w ykona się kod zaw arty w ew nątrz dow olnej instrukcji case, czyli nie zostanie spełniony żaden w arunek określony tą in­ strukcją. N ależy podkreślić, że praw ie nigdy nie pow inno się stosow ać instrukcji s w i t c h , w której byłaby m ożliw ość w ykonania w ięcej niż jednej instrukcji c a s e (co jest m ożliw e przy użyciu słow a kluczow ego g o t o ) - i taki sposób p isania kodu je st od kilku lat stanow czo odradzany jako zbyt nieczytelny. switch

(wyrażenie)

// a n a l i z o w a n e w y r a ż e n i e

case

wyrażenie_stałe:

instrukcje:

break;

case

wyrażenie_stałe:

instrukcje;

break;

default:

instrukcje;

b r e ak :

// // // // // // // // //

spra wdzenie dopasowania wyrażenia s t a ł e g o z wartością analizowanego wyrażenia dowolna l i c z b a wystąpień p o d in stru k c ji case podinstrukcja default: może n i e w y s t ą p i ć

} W poniższym przykładzie zostanie w ybrana w artość y=2. in t y; int x-3; sw it c h (x)

C c a s e 1: y - 1 ; b r e ak ; c a s e 3: c a s e 4: y - 2 ; break; d e f a u l t : y - 7 ; b r e ak ;

3

Podstawowa składnia języka C# 3.5.6.

37

Instrukcja pętli for

f o r jest najszybciej w ykonyw aną pętlą, poniew aż z góry w iadom o, ile razy się w ykona. S kłada się z trzech części: pierw sza ustaw ia w artość początkow ą licznika (m oże jednocześnie deklarow ać licznik), druga zaw iera w yrażenie logiczne, którego w artość rów na t r u e zezw ala na w ykonanie kolejny raz bloku instrukcji w ew nątrz pętli; trzecia określa bieżącą w artość licznika pętli. N igdy nie pow inno się m odyfiko­ wać wartości licznika w ew nątrz bloku instrukcji, poniew aż bardzo łatw o w tedy o popeł­ nienie błędu, co m oże spow odow ać nieprzew idziane skutki, np. nieskończoną pętlę. for

( i n s t r u k c j a : wyrażenie ( instrukcje;3

logiczne,

instrukcja)

O to typow y przykład pętli f or : for

( i n t 1 - 1 ; 1 x - M î t v o t fo ftio ir iifa

File

£dit

View

Favorites

Tools

yelp

J O jx J Links ”

Aplikacja C# została uruchomiona 9/18/2003 10:37:16 A Liczba prób logowania do aplikacji: 4 Liczba trwających sesji: 2 Done

M

A J 31

ig g Local Iritranet

Rysunek 18. Odczytanie daty uruchomienia aplikacji, liczby prób logowania i trwających sesji Dla bezpieczeństw a aplikacji kod źródłow y pliku g lo b a l .a s a x pow inien być um iesz­ czony w oddzielnym pliku typu c o d e - b e h i n d o nazwie: g l o b a l .a s a x .e s , co w ym aga odpow iedniej deklaracji w pierw szej linii kodu pliku g l o b a l .a s a x , co pokazano poni­ żej:

4.6.

Aplikacje typu code-behind

O becnie prom ow any sposób tw orzenia aplikacji A S P .N E T polega na całkow i­ tym , fizycznym (gdy to m ożliw e) oddzieleniu kodu języ k a np. C # od języ k a H TM L (D H T M L). A plikacje takie nazyw ane są aplikacjam i typu code-behind. G łów ne ko­ rzyści polegają na znacznym zm niejszeniu czasu pisania i testow ania kodu aplikacji poprzez podzielnie aplikacji na osobne fragm enty pochodzące od różnych program i­ stów posługujących się różnym i językam i zarządzalnym i np. C #, V B .N ET. W ten sposób d ana aplikacja A S P .N E T m oże składać się z w ielu złożeń (skom pilow anych m odułów , bibliotek) napisanych w różnych językach. Jest to m ożliw e, bo i tak w szy­ stkie złożenia zaw ierają tylko kod pośredni MS1L - w spólny dla w szystkich języków zarządzalnych. Z tego w zględu kolejne ćw iczenia zaw sze będą się składały z dw óch plików (.aspx i .cs), aby pokazać i przyzw yczaić przyszłych program istów do nowej filozofii program ow ania, polegającej na osobnym program ow aniu interfejsu użytkow ­ nika - plik .aspx, oraz pliku kodu .cs. R ozdzielenie kodu pojedynczego pliku .aspx polega na usunięciu znaczników i < / s c r i p t > , dopisaniu do dyrektyw y @Page atrybutów : I n h e r l t s "N azw aK lasy" src="Nazwa p l i k u _ c s " oraz przeniesieniu kodu m etod um ieszczo­ nych pom iędzy znacznikam i < s c r 1 p t > do pliku .cs. N azw aklasy je st nazw ą klasy, w której znajduje się cały kod C # (zm ienne, m etody) w pliku .cs. W szystkie m etody i zm ienne, do których następuje odw ołanie w pliku .aspx, m uszą m ieć atrybut dostępu p r o t e c t e d lub publ i c ; pozostałe elem enty pow inny m ieć atrybut p r i v a t e (w artość dom yślna). W pliku .cs pierw sze dw a w iersze kodu pow inny deklarow ać użycie nastę­ pujących przestrzeni-nazw : System, S y s t e m . W e b . U l . We bContr ol s. P ozostałe prze­ strzenie nazw pow inny w ystąpić tylko w razie potrzeby.

Chtm lXbody BgColor” " I v o r y " X f o r m r u n a t -"s e rv e r">

L og owa n i e do baz y d a n y c h < / H l >

Ccredentials passwordFormat-"Clear"> < u s e r name-" Adam" password-"Warszawa" />

ASP.NET i kolekcje C#

214 C u s e r name-"Ewa" < u s e r name-"Anna



< / c o n f i g u r a t i on>

8: 9: 10 11 12

13 14

p a s s w o r d - " B y d g o s z c z " /> p a s s w o r d “ " K a l 1 s z " />

Opis param etrów sekcji a u t h e n t i c a t i o n : •

mode

- " F o r m s " oznacza, że uw ierzytelnianie będzie przeprow adzone poprzez

form ularz .aspx. name - " M o j e C o o k i e l " - określa nazw ę utw orzonego cookie na hoście użytkow ­



nika. •

lo g in U rl -" L o g i n . a s p x " - określa nazw ę pliku logow ania.



p a s s wo r d F o r m a t

- " C l e a r " - oznacza, że hasło zostanie przesłane w postaci „czystego” tekstu, bez szyfrow ania algorytm am i M D 5 lub SH A 1.

W ynik ćw iczenia 50, w oknie IE 6.0, przedstaw iają rysunki 68 i 69.

m o\*}\

3 http://localhost/loglnForm/Log«n.aspx - Microsoft; Filft

Edit

View

Favorites

loołs

Hełp

L ogow anie do bazy dan y ch Login:

¡Anna!

Hasło: L og o w an ie

Przykro mi, nieprawidłowa nazwa użytkownika lub hasło! Done

F !

:

® lo^Wranat

à A

R y s u n e k 68. O k n o lo g o w a n ia d o b a z y d a n y c h

P lik B aza .a sp x 1: 2: 3: 4: 5:

v o i d P age_Load ( O b j e c t O b j , E v e n t A r g s E) C L a b . T e x t - " < H 2 > W i t a m y w Bazie d a n y c h " ; }

6: 7:

Chtml X b o d y X f o r m

runat-"server">

Logowanie do aplikacji ASP.NET 8:

215

Strona chroniona.

9: < B R X asp : Label id -" L a b " r u n a t - " s e r v e r " /> 10: < / f o r m > < / b o d y X / h t m l >

n

s Fite

Edit

s View

K

' :

Favorites

lo o k

-lflijsj t* ” K ' M

Strona chroniona.

W itamy w Bazie danych /'■&)Done i 1 ;(|3| Locai intranet

^

Rysunek 69. Okno IE po zalogowaniu się do bazy danych

10.3.

Metoda uwierzytelniania - W indows

M etoda uw ierzytelniania W indow s oparta je st na m etodach typu: B a sic , D ig it e s , K e rb ero s i przeprow adzana sam odzielnie przez system W indow s N T /2000, a nie platform ę .N ET Fram ew ork. M y zajm iem y się m etodą typu B a s ic , najprostszą do w y­ ko n an ia i zapew niającą podstaw ow ą ochronę dostępu do aplikacji. M etoda B a sic w ym aga: •

ustaw ienia param etru mode należącego do sekcji a u th e n ti c a ti o n w eb.config,

w pliku



utw orzenia kont użytkow ników na serw erze W indow s, dzięki którym będą m ogli się zalogow ać do aplikacji A SP.N ET,



u tw orzenia katalogu w irtualnego aplikacji, którego nazw a będzie dostępna przez Internet,



podaniu na pasku A dress przeglądarki IE nazw y katalogu w irtualnego aplikacji, co spow oduje pojaw ienie się standardow ego okna logow ania do W indow s.

Ćwiczenie 51 Utwórz katalog główny aplikacji C :\Inetpub\w w w root\L og1nW indow s oraz odpow iada­ ją c y m u katalog w irtualny VLogi nWi ndows. Następnie utwórz w tym katalogu dwa pliki: •

B aza.aspx - dostępny tylko po popraw nym zalogow aniu się do aplikacji,



w cb.config - w łączający m etodę logow ania do W indow s.

N a serw erze W indow s 2000 należy utw orzyć użytkow nika A dam z hasłem W arszaw a, który będzie m ógł zalogow ać się do pliku B aza.aspx. Po podaniu nazw y katalogu

ASP.NET i kolekcje C#

216

w irtualnego V L oginW indow s pojaw i się w przeglądarce internetow ej standardow e okno logow ania do W indows. R ozw iązanie Plik w eb.config 1: 2: 3:

< s ys te m. web > A u t h e n t i c a t i o n mode="W1ndows" >

< / s ys te m. we b>

4:

5: 6: 7:

Plik B aza.aspx Plik B aza.aspx z poprzedniego ćw iczenia. U tw orzenie u żytkow nika A dam z hasłem W arszaw a (rysunek 70) •

K liknij przycisk Start. W ybierz P rogram s->A dm inistrative T ools-*C om puter M anagem ent.



K liknij C om puter M anagem ent.



W oknie C om puter M anagem ent kliknij System T ools, a następnie L ocal U sers and G roups.



K liknij praw ym przyciskiem m yszy katalog U sers i w ybierz N ew User.



W oknie N ew U ser w pole U ser name wpisz nazw ę użytkow nika - A dam , a w pole Passw ord w pisz hasło W arszaw a.



Z aznacz opcję Passw ord never expires i odznacz opcję U ser m ust changed p ass­ w ord at next logon.



K liknij przycisk Close.

2 Computer M anagement iI

Action

View

" ♦

( t ] !{ 0

Tree

X

ß S * 0 ^ ; (jp Name

R J Name

Descr

Computer Managem ent (Local) '3$» System T o d s E v e r t Viewer

Buiit-i aspnet_w p account

Accoi Built-i

System Information Performance Logs and Alerts

Internet Guest Account

BuilM

Shared Folders

Launch I I S Process Account

Built-i

Device M anager

S Q lD eb u g q e r

Ttnsi

Local U se rs a nd Groups

TsIritemetUser

This i

■C ontrolPanel.



K liknij C ontrolPanel i w ybierz A dm inistrative Tools.



K liknij Internet Inform ation Services.



W oknie Internet Inform ation Services kliknij nazw ę sw ojego kom putera.



K liknij D efault W eb Site.



Znajdź i kliknij nazwę katalogu w irtualnego swojej aplikacji, np. V LoginW indow s.



W oknie Properties kliknij kartę D ocum ents.



W polu Enable D efault D ocum ent zaznacz w szystkie nazw y plików i klikając przycisk R em ove, usuń je.



K liknij przycisk A dd i w oknie Add D efault D ocum ent w pole D efault D ocum ent N am e w pisz nazw ę pliku startow ego sw ojej aplikacji, np. B aza.aspx, i kliknij przycisk OK.



Po pow rocie do okna Properties kliknij przycisk OK.

VLoqinWindow* Properties Virtual Directory

Documents j Diiectory Security j HTTP Headers J Custom Errors \ ^ ------

f ? Enable Default Document Baza.aspx

Add.





r

T * Enable Document Footer

Brjo«fè&i

OK

~j

Cancel

j

: ;

j

i

Help

Rysunek 72. Udostępnienie pliku Baza.aspx. Okno VLoginWindows Properties

legow anie do aplikacji ASP.NET

219

W yśw ietlenie standardow ego ok na logow an ia do W indow s katalogu V L oginW ind ow s poprzez zaznaczen ie m etody uw ierzytelniania logow an ia B asic, ry su­ nek 73 •

K liknij przycisk Start. W ybierz Settings-*C ontrolPanel.



K liknij C ontrolPanel i w ybierz A dm inistrative Tools.



K liknij Internet Inform ation Services.



W oknie Internet Inform ation Services kliknij nazw ę sw ojego kom putera.



K liknij D efault W eb Site.



K liknij praw ym przyciskiem m yszy nazw ę sw ojego katalogu w irtualnego i w y ­ bierz P roperties.



W o k nie P roperties kliknij kartę D irectory S ecurity.



N a karcie D irectory S ecuriry i w sekcji A nonym ouse A ccess and A uthentication controls kliknij przycisk Edit.



W oknie A uthentication M ethods zaznacz tylko opcję B asic. G dy się pojaw i ko­ m unikat Internet S ervice M anage, kliknij przycisk Yes. W oknie A uthentication M ethods pozostałe opcje odznacz i kliknij przycisk OK.



Po pow rocie do okna P roperties kliknij przycisk OK.

r~ Anonymousaccess 7 ;"w ''— r — — ------ :----No user name/pass woid required lo access this fesoutce.

ifćii

I For the followng authentication methods, user name and password are requred when •anonymous a ivi lyuvui*» access is * disabled, wi 01 •access is restricted using N TFS access control Ists

1

1

(