我是一名新開發人員,並且我已分配了確定註銷功能不起作用的任務。我嘗試了所有可能的方法,我可以找到。下面是我保存的日誌,其中包括我使用的方法。在ASP.NET中清除會話
增加了註銷按鈕到CommonHeader.ascx形式
試過在logout.aspx.vb形式多種方法來獲得它結束或清除會話,但他們沒有工作。
a。以logout.aspx.vb格式定義的ClearSession子例程:
Session("Variable") = ""
FormsAuthentication.SignOut()
Session.RemoveAll()
Session.Abandon()
Session.Clear()
b。還將此添加到Page_Load子例程的頂部:
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache)
HttpContext.Current.Response.Cache.SetNoServerCaching()
HttpContext.Current.Response.Cache.SetNoStore()
c。還將ClearSession子例程從Session("Variable") = ""
更改爲Session.Contents.Remove("Variable")
這些方法都不起作用。我們使用Siteminder,我一直在想這是否是問題的根源。我無法找到任何有關清除使用Siteminder的會話的任何信息。同時請記住這個應用程序編碼與Visual Studio 2003
這是我使用的ASCX文件按鈕的代碼:
ATHP:TopNavText標題=「註銷」 NavigateUrl =「註銷.aspx「Target =」_ top「/
然後在」logout.aspx「表單上,我嘗試過使用上述方法之一或每個方法的組合。這是代碼之前,我曾經撫摸它:
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
您是否通過調試確認您的ClearSession子例程被調用? (特別是當你有Session.Abandon()時) –
如果你使用的是VS2003,那麼你使用的是.NET 1.1。 –
是的,它肯定會碰到子程序。我在代碼中添加標記以驗證它在到達ClearSession子例程之前沒有停止。它只是在頁面加載時調用,然後它應該重定向到登錄頁面,但是當我有Response.Redirect(「login.aspx」)未加引號時,它仍然將我重定向回主頁,並且仍然登錄。 – gbills