[英]Clearing a session in ASP.NET
我是一名新開發人員,我被分配了解決我們的注銷功能無法正常工作的任務。 我已經嘗試了所有可以找到的方法。 下面是我保留的日志,其中包括我使用過的方法。
在CommonHeader.ascx表單中添加了一個注銷按鈕
已經在logout.aspx.vb表單中嘗試了許多方法來使其結束或清除會話,但它們都不起作用。
一種。 logout.aspx.vb形式中定義的ClearSession子例程:
Session("Variable") = ""
FormsAuthentication.SignOut()
Session.RemoveAll()
Session.Abandon()
Session.Clear()
灣 還將其添加到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 Title =“Log Out”NavigateUrl =“logout.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
最后想出了解決方案,我最初沒有在刪除包含siteminder會話ID的cookie時定義域。 我使用的代碼如下:
Dim cookie3 As HttpCookie = New HttpCookie("SMSESSION", "NO")
cookie3.Expires = DateTime.Now.AddYears(-1)
cookie3.Domain = ".domain.com"
Response.Cookies.Add(cookie3)
Response.Redirect("login.aspx")
這個問題: formsauthentication-signout-does-not-log-the-user-out描述了即使在調用FormsAuthentication.SignOut()之后也沒有清除cookie的問題。 這聽起來像你的問題,他們說它是.NET的一個錯誤,而你的使用1.1這聽起來很明顯。
嗨朋友請在用戶控件中添加按鈕的點擊事件。 在點擊事件中,請添加以下代碼並刪除所有其他代碼。
會話(“變量”)=“”;
看看這篇文章
無論是c sharp還是vb相同的規則仍然適用。 您正在調用會話放棄然后清除,但是當您打電話清除時,會話應該已經消失。
Clear將會話狀態與其中的對象保持在一起,因此通過在放棄后調用它實際上可以為用戶重新初始化會話,但使用已清除的變量。
查看此帖子,了解訂單以及殺死會話的正確方法,如果有的話,還可以重定向到登錄頁面
首先要注意的是,如果您使用的是表單身份驗證,則Session與用戶是否登錄完全無關。
如果CookiesSupported為false,則調用FormsAuthentication.SignOut將從cookie或URL中刪除表單身份驗證票證信息。
但它對Session中存儲的內容沒有影響。
UPDATE
為什么你認為注銷(FormsAuthentication.SignOut)不起作用? 當您單擊“注銷”時,您期望發生什么?實際發生了什么?
我將擺脫清除Session的所有代碼並查看它。 例如,使用Fiddler等工具查看http流量:您應該能夠看到單擊“注銷”時刪除了FormsAU身份驗證cookie。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.