2010-01-06 7 views
4

Je construis une application ASP.NET 3.5 dans laquelle j'ai une page qui charge une autre page dans un domaine différent dans un iframe. Ci-dessous le pour Default.aspx page:Problème de cookie Iframe Internet Explorer

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

    </iframe> 
</asp:Content> 

est en dessous de la page 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> 

est inférieure à la isite.aspx.cs page:

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

Cela fonctionne très bien dans Firefox, Safari et Chrome mais il fonctionne dans IE 7 ou 8. Dans IE, il me donne une page d'erreur HTTP 500. Après avoir fait des recherches sur ce que je pensais que son un problème de cookie dans IE et essayé les suivantes Soutions:

  1. Ajouté le code suivant à la 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\"");
    }

  2. Ajouté le suivant la ligne de code pour les événements Page_Init et Page_Load

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

Aucune de ces solutions n'a fonctionné pour moi. Qu'est-ce que je rate?

+0

j'ai le même problème et espère trouver une solution, je viens de trouver ce vieux poste http://connect.microsoft.com/IE/feedback/ details/369240/ie8-ne-va-pas-envoyer-des-cookies-tiers-set-in-another-window-tab qui dit que c'est un bogue dans IE8 et l'équipe IE qui va résoudre, quand ?! Je n'ai aucune idée :( –

+0

Avez-vous trouvé une solution à cela? – Bob

Répondre

0

J'ai eu le même problème dans IE, et aucune des solutions en ligne m'a aidé, dans mon cas, j'ai forcé l'utilisateur à se connecter à nouveau à l'intérieur de l'iframe, et cela a fonctionné pour moi.

1

« P3P » doit être en majuscules comme « P3P »

Questions connexes