Проблема с файлами cookie в Internet Explorer - PullRequest
3 голосов
/ 06 января 2010

Я создаю приложение ASP.NET 3.5, в котором у меня есть страница, которая загружает другую страницу в другом домене в iframe. Ниже приведена страница для Default.aspx :

<asp:Content ID="Content1" ContentPlaceHolderID="mainContent" runat="server">
    <iframe src="isite.aspx" runat="server" width="100%" height="100%" scrolling="auto">

    </iframe>
</asp:Content>

Ниже приведена страница iframe isite.aspx :

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>Untitled Page</title>
    </head>
    <body style="margin: 0; text-align: center;">
        <form id="Form1" name="frmSubmit" action="https://mysite.com/Login.asp"
        method="POST" runat="server">
        <span style="font-family: Arial">
            <asp:ImageButton ID="ImageButton1" runat="server" PostBackUrl="https://mysite.com/Login.asp" ImageUrl="/ajax-loader.gif" /> Please wait...
    <br />
        </span>
        <input type="hidden" name="txtUserName" size="30" maxlength="50" value="admin"
            onkeypress="Javascript:CheckKeyPress('ID')"/>
        <input type="hidden" name="pwdPassword" size="30" maxlength="25" value="password"
            onkeypress="Javascript:CheckKeyPress('P')"/>
        </form>
    </body>
    </html>

Ниже находится страница isite.aspx.cs :

    protected void Page_Load(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(Page.GetType(), "click", "<script language=javascript>document.getElementById('" + ImageButton1.ClientID + "').click();</script>");
    }

Это отлично работает в Firefox, Safari и Chrome, но в IE 7 или 8 не работает. В IE он выдает страницу ошибки HTTP 500. Проведя некоторые исследования, я решил, что это проблема с cookie в IE, и попробовал следующее:

  1. Добавлен следующий код в Global.asax:

    protected void Application_BeginRequest(object sender, EventArgs e)<br> {<br> HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");<br> }

  2. Добавлена ​​следующая строка кода для событий Page_Init и Page_Load

    HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");

Ни одно из этих решений не помогло мне. Чего мне не хватает?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2010

"p3p" должен быть в заглавных буквах, как "P3P"

0 голосов
/ 10 марта 2010

У меня была такая же проблема в IE, и ни одно из онлайн-решений не помогло мне, в моем случае я заставил пользователя снова войти в систему внутри iframe, и это сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...