2012-01-23 8 views
30

Mam do czynienia z problemem. Stworzyłem dwie sesje:Jak usunąć określoną sesję w asp.net?

  1. Session["userid"] = UserTbl.userid;
  2. Session["userType"] = UserTbl.type;

wiem jak usunąć sesje korzystania Session.clear(). Chcę usunąć sesję "userType".

Jak usunąć konkretną sesję?

+0

spróbuj ustawić Null na Session ["userType"] – ASpirin

+3

A Session.Remove ("userType"); – ThePower

Odpowiedz

35

Nie ma nic podobnego pojemnika sesji, dzięki czemu można ustawić go jako zerowy

ale raczej można ustawić pojedynczy element sesji za nieważną lub „”

jak Session["userid"] = null;

+0

dziękuję Milracle! To działa !! – Chintan

+1

Twoje powitanie ... –

+0

Kiedy wracam, po prostu ładuje stronę główną, mimo że sesja już nie istnieje. – Si8

56
Session.Remove("name of your session here"); 
+0

to Session.Remove thread safe? – RezaRahmati

+0

@RezaRahmati Chciałbym znać odpowiedź na to również – WhatsThePoint

+0

@WhatsThePoint Wygląda na to, domyślnie jest blokada czytnika/pisarza na nim https://msdn.microsoft.com/en-us/library/aa479041 .aspx – RezaRahmati

5

Istnieje wiele sposobów na anulowanie sesji w ASP.NET. Sesja to w istocie plik cookie, ustawiony w przeglądarce klienta iw ASP.NET, jego nazwa to zwykle ASP.NET_SessionId. Teoretycznie, jeśli usuniesz ten plik cookie (który pod względem przeglądarki oznacza, że ​​ustawiłeś datę wygaśnięcia na pewną datę w przeszłości, ponieważ pliki cookie nie mogą zostać usunięte przez programistów), tracisz sesję na serwerze. Innym sposobem, jak powiedziałeś, jest użycie metody Session.Clear(). Najlepszym sposobem jest ustawienie innego nieistotnego obiektu (zwykle o wartości null) w sesji odpowiadającej kluczowi. Na przykład, aby anulować numer Session["FirstName"], po prostu ustaw go na Session["FirstName"] = null.

Powiązane problemy