5

Si el anfitrión de una página ASP.NET con:IE8 no mantiene variables de sesión

<%@ Page Language="C#" %> 
<!DOCTYPE html> 
<script runat="server"> 

    protected void btn_Click(object sender, EventArgs e) 
    { 
     lbl.Text = HttpContext.Current.Session["a"] == null ? 
         "null" : 
         HttpContext.Current.Session["a"].ToString(); 
    } 
    protected void btn_Click2(object sender, EventArgs e) 
    { 
     lbl.Text = HttpContext.Current.Cache["a"] == null ? 
         "null" : 
         HttpContext.Current.Cache["a"].ToString(); 
    } 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      HttpContext.Current.Session["a"] = "CBA"; 
      lbl.Text = "assigned Session Variable"; 

      HttpContext.Current.Cache.Add(
        "a", "ABC", null, 
        DateTime.Now.AddHours(2), TimeSpan.Zero, 
        CacheItemPriority.NotRemovable, null); 
     } 
    } 

</script> 

<html> 
<head> 
    <title>Testing Session</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Button ID="btn" runat="server" Text="read Session" OnClick="btn_Click" />&nbsp;&nbsp; 
     <asp:Button ID="btn2" runat="server" Text="read Cache" OnClick="btn_Click2" /> 
     <hr /> 
     <asp:Label ID="lbl" runat="server" /> 
    </div> 
    </form> 
</body> 
</html> 

en la primera carrera me pongo el texto assigned Session Variable, pero al hacer clic en el objeto Session es siempre null

¿Hay alguna opción que necesite activar/desactivar para usar las variables de sesión normales?

funciona bien en IIS 6.0 y Cassini (en VS 2008 y 2010).

estoy empezando a estar sin ideas sobre lo que está pasando: O (

Cualquier ayuda es muy apreciada


el proceso de la página ejemplo anterior

alt text

alt text


Más pruebas muestra que esto sólo ocurre en IE (Internet Explorer 8 en este caso), Firefox, Safari, Opera, Chrome todos ellos dan la correcta "respuesta"

alt text


verificación de la screen cast of the situation

+0

El código aparece diferente al del ejemplo. ¿Qué evento de clic "dispara" el fuego? ¿El que trata con el caché o la sesión? –

+0

sí, terminé agregar un botón 'Caché' también para ver cómo se manejaba Caché ... maneja correctamente, pero necesito las variables de Sesión como las quiero por usuario, no por Aplicación y los datos es algo que realmente no necesito tener en caché. ** ScreenCast ** tiene el nuevo código (el código de ejemplo al comienzo de mi pregunta) – balexandre

+0

Tengo el mismo problema ... ¿Alguien sabe cuál podría ser el problema? El sitio funciona bien en Firefox, pero los usuarios (en todo el país) usan IE8. El sitio estaba funcionando bien en IE8 hasta hace un par de días. No puedo encontrar una explicación! –

Respuesta

2

el problema pueden ser los caracteres de subrayado en el dominio. elimine _ y vea si ocurre lo mismo

+1

El bloqueo de cookies cuando el host contiene caracteres de subrayado es un problema conocido en IE. Http://support.microsoft.com/kb/316112 – EricLaw

0

Las ID de sesión se mantienen mediante una cookie almacenada localmente en el navegador.

¿Se ejecuta en algún tipo de modo protegido que impide que IE8 almacene cookies? Debería haber un icono de advertencia rojo en la barra de estado ... algo a lo largo de "... evitó que este sitio almacene una cookie"

+0

Ya hice que la configuración de IE sea "baja", agregué el dominio a Sitios de confianza, en Configuración avanzada incluso agregué las opciones para mostrar contenido no confiable ... pero todo lo que hago, obtengo lo mismo (reinicio) IE): o ( – balexandre

Cuestiones relacionadas