我正在構建一個ASP.NET 3.5應用程序,其中我有一個頁面,該頁面在iframe中的另一個域中加載另一個頁面。下面是爲Default.aspx的頁:Internet Explorer Iframe Cookie問題
<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中的問題,並試圖以下soutions:
下面的代碼添加到Global.asax中:
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\"");
}添加了下面的代碼行到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\"");
這些解決方案都不適用於我。我錯過了什麼?
我有同樣的問題,希望找到一個解決方案帽,我剛剛發現這個舊文章http://connect.microsoft.com/IE/feedback/詳細信息/ 369240/ie8-will-not-send-third-party-cookies-set-in-another-window-tab其中說IE8和IE團隊中的bug會解決,什麼時候?我不知道:( – 2010-03-01 18:27:37
您是否找到了解決方案? – Bob 2012-08-13 10:46:53