【发布时间】:2010-01-06 17:10:35
【问题描述】:
我正在构建一个 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 问题,并尝试了以下解决方案:
-
将以下代码添加到 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\"");
这些解决方案都不适合我。我错过了什么?
【问题讨论】:
标签: asp.net internet-explorer cookies iframe