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 20):
<%@ 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. =)
Justo lo que buscaba, me has solucionado el problema que tenia con mi intro flash al consultar el SessionID.
Muchas gracias Pablo.