Przechowywanie stanu sesji klienta w ASP.NET W naszym wstępie do modelu sesji powyżej widać, że stan sesji powinien być przechowywany w dwóch miejscach, czyli po stronie klienta i serwera. Klient odpowiada jedynie za zapisywanie identyfikatora sesji odpowiedniej strony, podczas gdy pozostałe informacje o sesji są przechowywane po stronie serwera. W ASP SessionID klienta jest faktycznie przechowywany jako ciasteczko. Jeśli użytkownik zdecyduje się wyłączyć pliki cookie w ustawieniach przeglądarki, nie będzie mógł korzystać z wygody sesji, a nawet nie będzie mógł uzyskać dostępu do niektórych stron internetowych. Aby rozwiązać powyższe problemy, w ASP.NET istnieją dwa rodzaje metod przechowywania informacji sesji: ciasteczka i bezciasteczkowe. W ASP.NET klient domyślnie nadal używa plików cookie do przechowywania informacji o sesji. Jeśli chcemy używać plików cookieless na kliencie do przechowywania informacji o sesji, oto następująca metoda: Znajdź katalog główny aktualnej aplikacji webowej, otwórz plik Web.Config i znajdź następujący akapit: <sesjaState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="źródło danych=127.0.0.1; Trusted_Connection=tak" cookieless="fałszywe" Timeout="20"
/> cookieless="fałszywe" w tym akapicie zmienia się na cookieless="true", tak aby informacje o sesji klienta nie były już przechowywane przez ciasteczka, lecz przez adres URL. Zamknięcie obecnego IE, otwarcie nowego IE i ponowne użycie aplikacji webowej będzie wyglądać następująco: Wśród nich pogrubiona czcionka w http://localhost/MyTestApplication/(ulqsek45heu3ic2a5zgdl245)/default.aspx to identyfikator sesji klienta. Należy zauważyć, że te informacje są automatycznie dodawane przez IIS i nie wpływają na poprzednie normalne połączenie.
|