2011-09-05 43 views

Respuesta

11

No puede hacer esto usando ASP.NET. ASP.NET en el lado del servidor puede redirigir la solicitud entrante y no puede conocer un marco principal.

Pero si desea redirigir marco padre de alguna condición del lado del servidor puede llamar a JavaScript del servidor de esta manera:

protected void Page_Load(object sender, EventArgs e) { 
    ClientScriptManager.RegisterClientScriptBlock(this.GetType(), 
     "RedirectScript", "window.parent.location = 'http://yoursite.com'", true); 
} 

Y, por supuesto, puede utilizar sencilla window.parent.location JavaScript = 'http: //yoursite.com 'en el lado del cliente.

+1

Tenga en cuenta que los dominios de los documentos del marco del marco y los padres tendrán que coincidir para evitar un error de acceso denegado ser arrojado por la mayoría de los navegadores . – Chris

+0

Si mi padre tiene otro dominio en el marco? – Kiquenet

1
Response.Clear(); 
Header.Controls.Add(new LiteralControl(@" 
<script type=""text/javascript""> 
top.location = ""/Logout.aspx""; 
parent.location = ""/Logout.aspx""; 
</script> 
")); 
5

Acabo de utilizar el siguiente código con éxito. Incluso se omite la X-Frame-Options SAMEORIGIN y permite la redirección de un dominio a otro en un iframe:

string url = "https://siteurl.com"; 
Response.Write("<script>top.location='"+url+"';parent.location='"+url+"';</script>"); 
Cuestiones relacionadas