Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Zarządzanie stanem aplikacji Mechanizm Sesji

Podobne prezentacje


Prezentacja na temat: "Zarządzanie stanem aplikacji Mechanizm Sesji"— Zapis prezentacji:

1 Zarządzanie stanem aplikacji Mechanizm Sesji
Aplikacje sieciowe Zarządzanie stanem aplikacji Mechanizm Sesji Zmienne Application i Session

2 Sposoby wymiany informacji miedzy poszczególnymi żądaniami
Parametry żądania (ograniczenia związane z bezpieczeństwem i ilością przesyłanych informacji Cokies Stan Strony (ViewState) Stan aplikacji (zmienna Application) Stan sesji (zmienna Session)

3 Konfiguracja na poziomie strony Konfiguracja na poziomie kontrolki
ViewState Wykorzystywane do zapamiętania stanu kontrolek pomiędzy kolejnymi wywołaniami strony Konfiguracja na poziomie strony Konfiguracja na poziomie kontrolki Page Language="C#" ... CodeFile="Default2.aspx.cs" ..." EnableViewState="True" %> <asp:TextBox ID="TextBox1" runat="server" EnableViewState="False"></asp:TextBox>

4 ViewState cd. Property ViewState
Właściwość obiektu (kontrolki) Wykorzystanie w funkcjach składowych protected virtual StateBag ViewState { get; } this.ViewState["Text"]; this.ViewState["Text"] = value;

5 Dostępna dla konkretnego użytkownika
Sesja Dostępna dla konkretnego użytkownika Tworzona przy pierwszym żądaniu użytkownika Pomiędzy stronami przesyłany jest identyfikator sesji Stan sesji pamiętany jest na serwerze 1) w procesie serwera, 2) w zewnętrznym procesie, 3) w bazie danych MS SQL, 4) z wykorzystaniem własnej implementacji dziedzicząc od klasy: SessionStateStoreProviderBase.

6 Domyślnie trzymany w cookie Konfiguracja w pliku web.config
Identyfikator sesji Domyślnie trzymany w cookie Konfiguracja w pliku web.config Implementacja sesji bez cookie <configuration> <system.web> <sessionState cookieless="true" regenerateExpiredSessionId="true" /> </system.web> </configuration>

7 Konfiguracja trybu pracy mechanizmu sesji
InState – w pamięci serwera web StateServer – w zewnętrnym procesie SQLServer – serwer MS SQL Custom – własna implementacja Off – wyłączenie mechanizmu sesji <configuration> <system.web> <sessionState mode="StateServer„ stateConnectionString="tcpip=SampleStateServer:42424" cookieless="false" timeout="20"/> </system.web> </configuration>

8 Wprowadzanie informacji Session[”NAZWA”] = Wartosc;
Zmienna Session Wprowadzanie informacji Session[”NAZWA”] = Wartosc; Odczyt informacji zmienna = (TYP) Session[”NAZWA”] ; Przykład: Session[”Komunikat”] = ”Brak danych”; String s= (String) Session[”Komunikat”] ;

9 Stan aplikacji Dostępny dla wszystkich użytkowników, Szybki dostęp do zmiennych trzymanych w pamięci procesu aplikacji, Wrażliwy na restart aplikacji (np. Przy zmianie pliku web.config), Nie jest współdzielony pomiędzy różnymi instancjami aplikacji (w przypadku farmy serwerów, czy kolejnych instacji na jednym serwerze), Może być wykorzystywany przez wiele wątków aplikacji. Należy stosować metody Lock i UnLock.

10 Wykorzystanie zmiennej Application
Zapis: Odczyt: Application["Message"] = "Welcome to the Contoso site."; Application["PageRequestCount"] = 0; Application.Lock(); Application["PageRequestCount"] = ((int)Application["PageRequestCount"])+1; Application.UnLock(); if (Application["AppStartTime"] != null) { DateTime myAppStartTime = (DateTime)Application["AppStartTime"]; }

11 Session_OnEnd (działa w trybie InProc)
Zdarzenia Session_OnStart Session_OnEnd (działa w trybie InProc) <script language="C#" runat="server"> public void Application_OnStart() { Application["UsersOnline"] = 0; } public void Session_OnStart() { Application.Lock(); Application["UsersOnline"] = (int)Application["UsersOnline"] + 1; Application.UnLock(); public void Session_OnEnd() { Application["UsersOnline"] = (int)Application["UsersOnline"] - 1; </script>


Pobierz ppt "Zarządzanie stanem aplikacji Mechanizm Sesji"

Podobne prezentacje


Reklamy Google