Foros del Web » Programando para Internet » ASP Clásico »

Problema con "Session"

Estas en el tema de Problema con "Session" en el foro de ASP Clásico en Foros del Web. Hola a todos!!! Tengo un problema a la hora de pasar valores de sesión de una pagina a otra. Cuando ejecuto la web en la ...
  #1 (permalink)  
Antiguo 15/03/2005, 05:37
 
Fecha de Ingreso: marzo-2005
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
Pregunta Problema con "Session"

Hola a todos!!!

Tengo un problema a la hora de pasar valores de sesión de una pagina a otra. Cuando ejecuto la web en la intranet todo funciona perfectamente, el problema viene cuando se ejecuta desde fuera. Si el navegador desde el que se intenta acceder a la web tiene un nivel medio de seguridad o superior, no permite acceder ya que bloquea las cookies.

A mí me han dicho y he leído en otras webs de programación que para usar variables de sesión TAMBIEN es necesario que el navegador tenga habilitadas las cookies, y que si no las tiene habilitadas el servidor crea un nuevo SessionID en cada petición.

Me gustaría saber si se puede pasar estas variables de sesión independientemente del nivel de seguridad de modo que no dependieran del cliente en absoluto.

Espero que podais ayudarme.

Gracias.
  #2 (permalink)  
Antiguo 15/03/2005, 09:45
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
pues NO, (no se), pero hasta donde se, solo ASP.NET afrecen un mecanismo alterno a las cookies.
¿Por que no pasas los valores por campos ocultos?
  #3 (permalink)  
Antiguo 15/03/2005, 10:22
 
Fecha de Ingreso: marzo-2005
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
Entre los datos que paso con la variable de sesión paso desde el idioma que ha seleccionado el usuario hasta el usuario que ha hecho login, asi hasta 10 variables distintas. Es muy pesado pasar todas las variables cada vez se hace un click en un link, no crees?!?!?

Habia elegido el metodo de utilizar varibles de sesión para justo evitar no utilizar cookies, pero resulta que las sesiones no son mas que cookies, con la unica ventaja de que son mas sencillas de administrar a nivel de programación si cabe. Al menos es lo que yo me he encontrado.

Alguien sabe como hacer independiente este metodo del browser?!?!

Gracias.
  #4 (permalink)  
Antiguo 15/03/2005, 10:50
Avatar de pablinweb  
Fecha de Ingreso: julio-2003
Mensajes: 283
Antigüedad: 21 años, 9 meses
Puntos: 0
Hay una herramienta que sacó Microsoft para el problema de los exploradores viejos que no soportan cookies y de los que las tienen habilitadas pero la verdad que no la usé nunca, yo me fijo si las tiene habilitadas con:
<%
Set cliente=Server.CreateObject("MSWC.BrowserType")
if cliente.Cookies = false then
response.Write("Habilite las cookies para poder navegar en el sitio")
response.end
%>
y si no las habilita que se vaya a otro sitio, pero si te interesa el tema te dejo el articulo para que lo investigues.


Since browsers predating the HTML 2.0 standard do not support cookies, cookie-enabled sites will not be able to provide cookies to users with older browsers. To solve this problem, Microsoft created a utility called the Cookie Munger to provide cookie support for browsers that do not support cookies or have cookies turned off. (Find it at http://www.microsoft.com/windows/downloads
/contents/admintools/iiscookiemunger/default.asp.) You can use this kind of utility to extend cookie support in your customer base.
Cookie Munger is an ISAPI filter that munges outgoing HTML and incoming HTTP transactions to simulate cookies and maintain session state. Since Active Server Pages uses the ASPSESSIONID cookie for session state, the ASP engine expects the browser to send this cookie with HTTP requests. If the ASPSESSIONID cookie is not sent, ASP cannot tell user sessions apart and therefore cannot reliably update the Session object.
The Cookie Munger operates by accepting client HTTP requests for a particular URL. If the headers of the request contain a "Cookie: ASPSESSIONID=xxx" header, the Munger records the ASPSESSIONID. If the URL contains an encoded ASPSESSIONID, the filter generates a Cookie header and removes the ASPSESSIONID from the URL. So when the ASP serves a page, the Cookie Munger replaces Set-Cookie headers with ASPSESSIONIDs and "munges" any local URLs embedded in the page.
The Cookie Munger facilitates cookie use across multiple browsers, which in turn means a wider customer base. Keep in mind, though, that this utility might affect the performance of your Web server. As a filter, the Cookie Munger intercepts all HTTP requests and filters all outgoing ASP data. The filter does not let you configure for a per-browser basis or on a per-user basis.
  #5 (permalink)  
Antiguo 15/03/2005, 11:31
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Que interesante, nunca habia leido(escuchado) nada de esto...tendremos que probar!

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 15/03/2005, 12:15
 
Fecha de Ingreso: marzo-2005
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
Hasta ahora controlaba este aspecto (si tiene o no habilitadas las cookies) pero me hubiese gustado poder utilizar la session ante este aspecto que os comentaba.

He estado buscando en microsoft acerca del "iiscookiemunger" que me comentabas, pero nada chico. Parece muy interesante pero tambien parece que microsoft ha dejado a un lado esta herramienta ya que se basa en la vieja versión 2 de HTML.

Bueno gracias a todos por vuestros comentarios, y si encuentro alguna solución la publicare aqui.

Un saludo y muchas gracias
  #7 (permalink)  
Antiguo 16/03/2005, 07:09
 
Fecha de Ingreso: marzo-2005
Mensajes: 5
Antigüedad: 20 años, 1 mes
Puntos: 0
Si necesitais controlar unicamente si tiene habilitadas las cookies de sesion, no todas las cookies, aqui os pongo un peque codigo que os podría ayudar:

Example

sessions1.asp debe contener el siguiente formulario. En el escribes la SessionID en un campo oculto llamado "theSessionID" y envia el formulario a sessions2.asp:


<form name="Form1" method="post" action="sessions2.asp">
UserName:<input name="username"><br>
Password:<input name="userpassword">
<input type="hidden" name="theSessionID" value="<%=Session.SessionID%>">
<br><input type="submit" value="Submit">
</form>



En sessions2.asp, recibimos el SessionID que le hemos pasado, y lo comparamos con el SessionID que obtenemos en esta pagina:

<%
dim theSessionID
theSessionID = Request.Form("theSessionID")
'Ahora, obtenemos el SessionID y comparamos con el primero
If theSessionID = Session.SessionID Then
Response.Write "Cookie Session ON"
' utiliza variables de sesión
Else
Response.Write "Cookies Session OFF"
' no utiliza variables de sesión
End If
%>


Es un poco rudimentario, pero funciona.

Si encontrais algun otro metodo más practico, por favor, publicadlo.

Saludos!!!!
  #8 (permalink)  
Antiguo 16/03/2005, 08:48
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Cita:
Entre los datos que paso con la variable de sesión paso desde el idioma que ha seleccionado el usuario hasta el usuario que ha hecho login, asi hasta 10 variables distintas. Es muy pesado pasar todas las variables cada vez se hace un click en un link, no crees?!?!?
Si, pero esta rama de la informática no tiene como objetivo principal el hacerle la vida más fácil al programador, sino al usuario final.

Cita:
Alguien sabe como hacer independiente este metodo del browser?!?!
No he investigado, tal vez si se pueda, pero si existe no sería más que un método similar a lo que ya existe (que es el envío de los datos por QueryString, solo que el front-end coloca el código). Tomando en cuenta que las cookies son cosa del cliente, no debería poder hacerse lo que deseas.

Ahora, pudes hacer otras cosas, desde crear un archivo texto en el servidor por cada usuario y borrarlo cuando "su sesión" se termine, hasta crear una tabla de preferencias para dicho usuario. El problema consiste en cómo vas a identificar cada petición con su usuario exacto. Sin cookies la verdad es que solo se me ocurre pasar UN campo oculto en todas las páginas, si, es latoso, pero si es la forma de hacerse, pues ni modo.

Te deseo exito en tu búsqueda.

Saludos

Última edición por Myakire; 16/03/2005 a las 08:49
  #9 (permalink)  
Antiguo 16/03/2005, 08:51
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
usuario que no utiliza cukis no merece atencion.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:30.