IE8 не хранит переменные сессии - PullRequest
5 голосов
/ 07 сентября 2010

Если я размещаю страницу ASP.NET с:

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

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

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

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

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


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

alt text

alt text


Дополнительные тесты показывает, что это происходит только в IE (т.е. в данном случае 8), Firefox, Safari, Opera, Chrome все они дают правильный «ответ»

alt text


проверьте скриншот ситуации

Ответы [ 2 ]

2 голосов
/ 27 мая 2011

проблема может заключаться в подчеркивании в домене.удалите _ и посмотрите, происходит ли то же самое

0 голосов
/ 07 сентября 2010

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

Вы работаете в каком-то защищенном режиме, который не позволяет IE8 хранить куки? В строке состояния должен быть красный значок предупреждения ... что-то рядом с "... не позволило этому сайту сохранить куки"

...