Internet Explorer Iframe cookie问题

3

我正在构建一个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错误页面。经过一些研究,我发现这是IE中的一个cookie问题,并尝试了以下解决方案:
  1. 在Global.asax中添加以下代码:
  2. protected void Application_BeginRequest(object sender, EventArgs e)
    {
    HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");
    }

  3. 在Page_Init和Page_Load事件中添加以下代码:
  4. HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");

这些解决方案都对我无效。我错过了什么?

我有同样的问题,希望能找到解决方案。我刚刚发现了这篇旧文章http://connect.microsoft.com/IE/feedback/details/369240/ie8-will-not-send-third-party-cookies-set-in-another-window-tab,它说这是IE8中的一个错误,IE团队会解决,但是什么时候呢?我不知道 :( - Amr Elgarhy
2个回答

0

我在IE中遇到了同样的问题,而且在线解决方案都没有帮助我。在我的情况下,我强制用户在iframe内重新登录,这对我有用。


0

"p3p" 应该像 "P3P" 一样大写


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接