Tôi là một nhà phát triển mới và tôi đã được giao nhiệm vụ tìm ra lý do tại sao chức năng đăng xuất của chúng tôi không hoạt động. Tôi đã thử mọi phương pháp có thể tôi có thể tìm thấy. Dưới đây là nhật ký tôi đã lưu giữ bao gồm các phương pháp tôi đã sử dụng.Xóa phiên trong ASP.NET
Added nút một khúc gỗ ra mẫu CommonHeader.ascx
đã thử nhiều phương pháp trong các hình thức logout.aspx.vb để có được nó để kết thúc hoặc xóa phiên nhưng không ai trong số họ làm việc.
a. ClearSession sub routine được định nghĩa trong biểu mẫu logout.aspx.vb:
Session("Variable") = ""
FormsAuthentication.SignOut()
Session.RemoveAll()
Session.Abandon()
Session.Clear()
b. Ngoài ra, hãy thêm phần này vào đầu thói quen phụ Page_Load:
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache)
HttpContext.Current.Response.Cache.SetNoServerCaching()
HttpContext.Current.Response.Cache.SetNoStore()
c. Cũng đã thay đổi thói quen phụ ClearSession thành Session.Contents.Remove("Variable")
từ Session("Variable") = ""
Không có phương pháp nào trong số này hoạt động. Chúng tôi sử dụng Siteminder và tôi đã tự hỏi liệu đây có phải là gốc của sự cố không. Tôi không thể tìm thấy bất kỳ nội dung nào về việc xóa một Phiên sử dụng Siteminder. Cũng nên nhớ ứng dụng này được mã hóa với Visual Studio 2003.
Đây là mã cho nút Tôi đang sử dụng trong file ascx:
athp: TopNavText Title = "Log Out" NavigateUrl = "logout .aspx "Target =" _ top "/
Sau đó, trên biểu mẫu" logout.aspx "tôi đã thử chỉ sử dụng một trong các phương pháp được mô tả ở trên hoặc kết hợp từng phương pháp. Đây là mã trước khi tôi chạm vào nó:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ClearSession()
Response.Redirect("login.aspx")
End Sub
Public Sub ClearSession()
Session("Variable") = ""
End Sub
Bạn đã xác minh bằng cách gỡ lỗi rằng quy trình phụ ClearSession của bạn đã được gọi? (đặc biệt khi bạn có Session.Abandon() trong đó) –
Nếu bạn đang sử dụng VS2003, thì bạn đang sử dụng .NET 1.1. –
Có, nó chắc chắn chạm vào thói quen phụ. Tôi đặt dấu trong mã để xác minh nó đã không dừng lại trước khi nó đạt đến chương trình con ClearSession. Nó chỉ được gọi khi trang tải, sau đó nó được chuyển hướng đến trang đăng nhập, nhưng nó vẫn chuyển hướng tôi trở lại trang chủ với tôi vẫn đăng nhập khi tôi có Response.Redirect ("login.aspx") unquoted. – gbills