Si creas una página en ASP.NET y en su evento Load pones lo siguiente:
-
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
-
Label1.Text = Session.SessionID & " " & Session("idsesion")
-
Response.Write(Session.SessionID)
-
End Sub
notarás que cada vez que oprimes Refresh o Actualizar en tu navegador, la variable de sesión se modifica. Definitivamente es raro porque uno siempre ha sabido que la variable de sesión debe ser la misma durante todo el tiempo que el visitante permanece visitando la aplicación.
Bueno, la variable de sesión permanece igual siempre y cuando se coloque algún valor en el estado de la sesión. (yo tampoco entiendo muy bien la razón).
El caso es que para solucionar el problema "de raíz", creé una variable de sesión en el código del archivo Global.asax, justo cuando se crea la sesión (checa la línea 21):
-
<%@ Application Language="VB" %>
-
-
<script runat="server">
-
-
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
-
' Code that runs on application startup
-
End Sub
-
-
Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
-
' Code that runs on application shutdown
-
End Sub
-
-
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
-
' Code that runs when an unhandled error occurs
-
End Sub
-
-
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
-
' Code that runs when a new session is started
-
'La siguiente linea evita que session.sessionid se modifique cada
-
'vez que se oprime Refresh en el navegador
-
Session("idsesion") = Session.SessionID
-
End Sub
-
-
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
-
' Code that runs when a session ends.
-
' Note: The Session_End event is raised only when the sessionstate mode
-
' is set to InProc in the Web.config file. If session mode is set to StateServer
-
' or SQLServer, the event is not raised.
-
End Sub
-
-
</script>
Esto hace que el estado de la sesión permanezca sin modificarse y ahora el código del Response.Write(Session.SessionID) citado anteriormente regresa siempre el mismo valor. =)
#1 by elber on 15 Agosto 2009 - 3:25
Justo lo que buscaba, me has solucionado el problema que tenia con mi intro flash al consultar el SessionID.
Muchas gracias Pablo.