[ Pobierz całość w formacie PDF ]
Nie wolno zapominać, \e zawartość pliku web.config jest hierarchiczna, dotyczy to tak\e
znaczników . Na przykład, przeanalizujmy poni\szy fragment kodu:
Ustawienia konfiguracyjne definiowane w powy\szym pliku będą dotyczyć nie tylko podfolderu1,
lecz tak\e wszystkich folderów znajdujących się wewnątrz niego, i tak dalej.
Ta sekcja umo\liwia określenie opcji dotyczących stron ASP.NET, które są zazwyczaj podawane
przy wykorzystaniu dyrektywy @ Page. Ró\nica polega jednak na tym, i\ ustawienia
konfiguracyjne podawane w tej sekcji dotyczą wszystkich stron wchodzących w skład witryny, a
nie jednej, konkretnej strony (jak jest w przypadku dyrektywy @ Page, która dotyczy strony na
jakiej została umieszczona). Poni\ej została przedstawiona przykładowa postać sekcji :
buffer="on"
enableSessionState="true"
maintainState="true"
autoEventWireup="true"
clientScriptsLocation="/scripts"
inherits="System.Web.UI.Page" />
Powy\szy fragment kodu zawiera wszystkie dostępne właściwości elementów .
Powy\sze ustawienia sprawią, \e na wszystkich stronach ASP.NET zostanie włączone
buforowanie, wykorzystanie sesji, zapamiętywanie stanu (tzw. widok stanu; więcej informacji na
temat tych trzech zagadnień mo\na zalezć w rozdziale 4, pt.: Stosowanie obiektów ASP.NET w
językach C# i VB.NET ) oraz włącza wykorzystanie zdarzeń generowanych na stornie.
Dodatkowo powy\sza sekcja określa tak\e poło\enie skryptów wykorzystywanych po
stronie klienta i informuje ASP.NET, \e ka\da strona powinna być obiektem klasy będącej klasą
potomną kasy System.Web.UI.Page (stosowanej domyślnie).
Ta sekcja jest bardzo przydatna w sytuacjach, gdy wszystkie strony witryny mają działać
podobnie. Nale\y jednak zachować du\ą ostro\ność, gdy\ zazwyczaj domyślne ustawienia są
całkowicie wystarczające, a ich modyfikowanie dla pojedynczych stron mo\e doprowadzić do
spadku efektywności działania aplikacji a nawet do wystąpienia błędów. Ustawienia
konfiguracyjne dostępne w tej sekcji będą zazwyczaj podawane niezale\nie dla konkretnych stron.
ASP.NET udostępnia wiele sposobów modyfikowania stanu sesji. Na przykład, wartości
zmiennych sesyjnych mogą być przechowywane na innym komputerze, co zabezpiecza je przed
awariami serwera oraz sytuacjami wymagającymi jego wymiany. Dzięki temu, niezale\nie od tego
co mo\e się stać, dane sesyjne nigdy nie zostaną utracone. Stan sesji mo\na tak\e przechowywać
w innym procesie działającym na tym samym komputerze, co stanowi inny sposób zabezpieczania
się przed ich utratą. W sekcji mo\na umieszczać następujące atrybuty:
" mode Atrybut ten określa czy w ogóle nale\y zapamiętywać informacje o sesji. Mo\e
on przybierać następujące wartości: off (stan sesji nie będzie zapisywany), inproc
(informacje o sesji będą zapisywane lokalnie; jest to wartość domyślna), stateserver
(informacje o sesji będą przechowywane na innym komputerze) bądz sqlserver
(informacje o sesji będą przechowywane w bazie danych na SQL Serverze).
" cookieless Ten atrybut określa, \e nale\y stosować sesje które nie wykorzystują
cookies (więcej informacji na temat takich sesji oraz obsługi cookies mo\na znalezć w
rozdziale 4.).
" timeout Ten atrybut określa po ilu minutach bezczynności ASP.NET usunie sesję
(domyśla wartość to 20 minut).
" connectionString Ten atrybut określa nazwę oraz numer portu serwera na który
mają być przechowywane informacje o sesji (jeśli atrybut mode ma wartość
stateserver).
" sqlConnectionString Ten atrybut określa łańcuch połączenia u\ywany do
nawiązania połączenia z bazą danych SQL Servera, w której mają być przechowywane
informacje o sesji (jeśli atrybut mode ma wartość sqlserver).
Oto przykładowy sposób zapisu tej sekcji:
mode="InProc"
cookieless="false"
timeout="10" />
Mo\na sądzić, \e z punktu widzenia bezpieczeństwa danych, przechowywanie informacji o sesji
na innym komputerze zawsze jest dobrym rozwiązaniem. Jednak w takim przypadku spada
efektywność działania aplikacji; ASP.NET musi bowiem nawiązywać połączenia sieciowe z
innym komputerem, a to zawsze zabiera du\o czasu. Zapisywanie informacji o sesji w tym samym
[ Pobierz całość w formacie PDF ]