5

Если я хозяйничать страницы ASP.NET с:IE8 не хранит переменные сеанса

<%@ 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> 

на первом запуске я делаю получить assigned Session Variable текст, но на мыши объект Session всегда null

Id там вариант, который мне нужно включить/выключить, чтобы использовать обычные переменные сеанса?

отлично работает на IIS 6.0 и Cassini (под VS 2008 и 2010).

Я начинаю без идеи о том, что происходит: о (

Любая помощь очень ценится


процесс на примере страницы выше

alt text

alt text


Больше тестов показывает, что это происходит только в IE (IE8 в данном случае), Firefox, Safari, Opera, Chrome все они дают правильный "ответ"

alt text


Проверьте screen cast of the situation

+0

Код выглядит иначе, чем в примере. Какое событие клика «перезагружает» огонь? Тот, который работает с кешем или сеансом? –

+0

да, я закончил добавлять кнопку «Cache», а также просто посмотреть, как был обработан Cache ... он корректно обрабатывает, но мне нужны переменные сеанса, как я хочу их на пользователя, а не за приложение и данные это то, что мне действительно не нужно иметь в кеше. ** ScreenCast ** имеет новый код (пример кода в начале моего вопроса) – balexandre

+0

У меня такая же проблема ... кто-нибудь знает, в чем проблема? Сайт отлично работает на Firefox, но пользователи (по всей стране) используют IE8. Сайт работал отлично в IE8 до нескольких дней назад. Я не могу найти объяснения! – 2011-02-18 18:05:52

ответ

2

Проблема может быть подчеркиванием в домене. удалите _ и посмотрите, произойдет ли то же самое событие

+1

Блокировка файлов cookie, когда хост содержит символы подчеркивания, является известной проблемой в IE. Http://support.microsoft.com/kb/316112 – EricLaw

0

Идентификаторы сеанса хранятся через локально сохраненный файл cookie браузером.

Вы работаете в каком-то защищенном режиме, который мешает IE8 хранить файлы cookie? В строке состояния должна быть красная предупреждающая пиктограмма .. что-то вроде «... помешало сайту сохранить куки»

+0

Я уже сделал настройки IE для всех «низкими», добавил домен на «Доверенные сайты», в «Расширенные настройки». Я даже добавляю параметры для отображения недостоверного контента ... но все, что у меня есть, я получаю то же самое (я перезапускаю IE): o ( – balexandre

Смежные вопросы