Soy un nuevo desarrollador, y me han asignado la tarea de averiguar por qué nuestra función de cierre de sesión no funciona. Probé todos los métodos posibles que puedo encontrar. A continuación se muestra el registro que he mantenido que incluye los métodos que he usado.Borrando una sesión en ASP.NET
añadido un botón de cierre de sesión a la forma CommonHeader.ascx
han intentado numerosos métodos en la forma logout.aspx.vb conseguirlo para finalizar o borrar la sesión, pero ninguno de ellos trabajar.
a. Supresión de ClearSession definida en el formulario logout.aspx.vb:
Session("Variable") = ""
FormsAuthentication.SignOut()
Session.RemoveAll()
Session.Abandon()
Session.Clear()
b. También se agregó esto a la parte superior de la subcomputadora Page_Load:
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache)
HttpContext.Current.Response.Cache.SetNoServerCaching()
HttpContext.Current.Response.Cache.SetNoStore()
c. También cambió la rutina secundaria de ClearSession a Session.Contents.Remove("Variable")
desde Session("Variable") = ""
Ninguno de estos métodos funciona. Usamos Siteminder, y me he estado preguntando si esta es la raíz del problema. Simplemente no puedo encontrar nada al borrar una sesión que usa Siteminder. También hay que tener en cuenta esta solicitud se codifica con Visual Studio 2003.
Este es el código para el botón que estoy usando en el ascx:
aTHP: TopNavText Título = "Cerrar sesión" NavigateUrl = "cierre de sesión .aspx "Target =" _ top "/
Luego, en el formulario" logout.aspx ", he intentado simplemente usar uno de los métodos descritos anteriormente o una combinación de cada uno. Este es el código antes de que yo toco:
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
¿Confirmó al depurar que se estaba llamando a su rutina de sub de ClearSession? (particularmente cuando tenía Session.Abandon() allí) –
Si usa VS2003, entonces está usando .NET 1.1. –
Sí, definitivamente llega a la rutina secundaria. Puse marcadores en el código para verificar que no se detuviera antes de que llegara a la subrutina de ClearSession. Se llama cuando se carga la página, luego se supone que debe redirigir a la página de inicio de sesión, pero me redirige a la página de inicio cuando todavía tengo una sesión iniciada cuando tengo Response.Redirect ("login.aspx") sin comillas. – gbills