Samouczek zarządzania sesjami ASP.NET [Przykład]
Zarządzanie sesjami ASP.NET
Protokół HTTP, na którym działają wszystkie aplikacje internetowe, jest protokołem bezstanowym. Słowo „bezpaństwowiec” oznacza po prostu, że informacje nie są zatrzymywane od jednego wniosku do drugiego.
Na przykład, jeśli masz stronę logowania, która ma 2 pola tekstowe, jedno na nazwę i drugie na hasło. Kiedy klikniesz przycisk Zaloguj na tej stronie, aplikacja musi upewnić się, że nazwa użytkownika i hasło zostaną przekazane na następną stronę.
W ASP.Net odbywa się to na różne sposoby. Pierwszy sposób polega na koncepcji zwanej ViewState. W tym przypadku ASP.Net automatycznie przechowuje zawartość wszystkich kontrolek. Zapewnia również przeniesienie tego na następną stronę. Odbywa się to poprzez właściwość zwaną ViewState.
Nie jest idealnym rozwiązaniem, aby programista zmieniał cokolwiek w stanie widoku. Dzieje się tak, ponieważ powinien być obsługiwany tylko przez ASP.Net.
Obiekt sesji ASP.NET
Innym sposobem jest użycie obiektu zwanego „Obiektem sesji”. Obiekt Session jest dostępny przez cały cykl życia aplikacji. W obiekcie Session możesz przechowywać dowolną liczbę par klucz-wartość. Zatem na dowolnej stronie możesz zapisać wartość w obiekcie Session, korzystając z poniższego wiersza kodu.
Session["Key"]=value
Przechowuje wartość w obiekcie Session, a część „key” jest używana do nadania wartości nazwy. Pozwala to na pobranie wartości w późniejszym czasie. Aby pobrać wartość, możesz po prostu wydać poniższe polecenie.
Session["Key"]
Przykład obiektu sesji ASP.NET
W naszym przykładzie użyjemy obiektu Session do zapisania nazwy wprowadzonej w polu tekstowym name na stronie. Następnie pobierzemy tę wartość i wyświetlimy ją na stronie. Dodajmy poniższy kod do pliku Demo.aspx.cs.
protected void btnSubmit_Click(object sender,EventArgs e) { Session["Name"] = txtName.Text; Response.Write(Session["Name"]); lblName.Visible = false; txtName.Visible = false; 1stLocation.Visible = false; chkC.Visible = false; chkASP.Visible = false; rdMale.Visible = false; rdFemale.Visible = false; btnSubmit.Visible = false; }
Wyjaśnienie kodu: -
- Pierwszy wiersz kodu pobiera wartość kontrolki tekstowej Name i zapisuje ją w obiekcie Session. Określając kod Session[“Name”], nadajemy właściwości nazwę „Name”. Określając nazwę dla właściwości, łatwiej jest ją później odzyskać.
- Następny wiersz kodu pobiera przechowywaną wartość z obiektu Session. Następnie zapisuje tę wartość za pomocą metody „Response.Write” z powrotem do klienta.
- Na koniec sprawiamy, że wszystkie kontrolki na formularzu są niewidoczne. Jeśli tego nie zrobimy, wszystkie kontrolki plus nasze wartości odpowiedzi będą wyświetlane razem.
Po wprowadzeniu powyższych zmian zobaczysz następujący wynik
Wyjście:
Z danych wyjściowych wynika, że wartość sesji name została pobrana i wyświetlona w przeglądarce.
Podsumowanie
- Zarządzanie sesjami jest sposobem na wejście ASP.net aby mieć pewność, że informacje zostaną przekazane z jednej strony na drugą.
- Właściwość stanu widoku strony służy do automatycznego przekazywania informacji o kontrolkach z jednej strony na drugą.
- Obiekt „Sesja” służy do przechowywania i pobierania określonych wartości na stronie internetowej.