• Nie Znaleziono Wyników

Zarządzanie stanem aplikacji Mechanizm Sesji Zmienne Application i Session

N/A
N/A
Protected

Academic year: 2021

Share "Zarządzanie stanem aplikacji Mechanizm Sesji Zmienne Application i Session"

Copied!
11
0
0

Pełen tekst

(1)

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)

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)

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)

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>

http://www.example.com/(S(lit3py55t21z5v55vlm25s55))/orderform.aspx

(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)

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)

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.Lock();

Application["UsersOnline"] = (int)Application["UsersOnline"] - 1;

Application.UnLock();

}

</script>

Cytaty

Powiązane dokumenty

The parameters of the contact force model used in discrete element simulations of pattern transformation (cf. Chapter 5 ) and dispersion relation calculations (cf. Chapter 6 ) of

Omdat de huishoudens uit Delft door het afgesloten convenant eigen- lijk beschouwd kunnen worden als lokale woningzoekenden, kunnen we stellen dat maar zes

Motointegrator.pl – outline of business model constructs and growth stages (own elaboration based on a company website).. Business model constructs

По нашему мнению, в русском языке название членов этой экстремистской, националистической партии вызывает более от­ рицательные ассоциации,

Wstawienie nowej strony startowej typu JSF jako Facelets template client - prawym klawiszem kliknąć na nazwę projektu i wybór New/Other... Wybór typu strony –

W mieniącej się demokratyczną Unii Europejskiej na razie wiadomo tyle: chrześcijanin może być politykiem, ale jeśli będzie bronił swej wiary religijnej - do czego zgodnie

– zarządzanie cyklem życia aplikacji z punktu widzenia realizacji kluczowych procesów biznesowych,. – integracja zarządzaniem cyklem życia wszystkich aplikacji obecnych

Producent po włożeniu do pudełka liczby i wyświetleniu jej na ekranie zostaje uśpiony na losowy wybrany czas między 0 a 100 milisekund zanim przejdzie