2012-01-23 32 views
30

Tôi đang gặp phải sự cố. Tôi đã tạo ra hai phiên:Làm cách nào để xóa phiên cụ thể trong asp.net?

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

tôi biết làm thế nào để loại bỏ phiên sử dụng Session.clear(). Tôi muốn xóa phiên "userType".

Làm cách nào để xóa một phiên cụ thể?

+0

thử đặt Null thành Phiên ["userType"] – ASpirin

+3

Còn Session.Remove ("userType"); – ThePower

Trả lời

35

Không có gì như container phiên, do đó, bạn có thể thiết lập nó như là null yếu tố phiên cá nhân

mà bạn có thể thiết lập như là null hoặc ""

như Session["userid"] = null;

+0

cảm ơn Milracle! Nó hoạt động !! – Chintan

+1

chào mừng bạn ... –

+0

Khi tôi nhấn lại, nó chỉ tải trang chính ngay cả khi phiên không còn nữa. – Si8

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

là Session.Remove thread có an toàn không? – RezaRahmati

+0

@RezaRahmati tôi muốn biết câu trả lời cho điều này cũng như – WhatsThePoint

+0

@WhatsThePoint Dường như theo mặc định có khóa người đọc/người viết trên đó https://msdn.microsoft.com/en-us/library/aa479041 .aspx – RezaRahmati

28

bạn có thể sử dụng phương thức Session.Remove(); Session.Remove

Session.Remove("yourSessionName"); 
5

Có nhiều cách để vô hiệu hóa phiên trong ASP.NET. Phiên bản chất là một cookie, được đặt trên trình duyệt của khách hàng và trong ASP.NET, tên của nó thường là ASP.NET_SessionId. Vì vậy, về mặt lý thuyết nếu bạn xóa cookie đó (trong điều khoản của trình duyệt có nghĩa là bạn đặt ngày hết hạn của nó cho một số ngày trong quá khứ, bởi vì các nhà phát triển không thể xóa cookie), thì bạn mất phiên trong máy chủ. Một cách khác như bạn đã nói là sử dụng phương pháp Session.Clear(). Nhưng cách tốt nhất là đặt một đối tượng không liên quan khác (thường là giá trị null) trong phiên tương ứng với khóa. Ví dụ: để hủy kích hoạt Session["FirstName"], chỉ cần đặt thành Session["FirstName"] = null.

Các vấn đề liên quan