2011-09-05 249 views

回答

11

你不能这样做使用ASP.NET。服务器端的ASP.NET可以重定向传入的请求,并且无法知道父框架。

但是,如果你想重定向在某些服务器端状态父框架,你可以调用JavaScript从服务器这样的:

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

当然,你可以使用简单的JavaScript window.parent.location =“HTTP: //yoursite.com'在客户端。

+1

注意,框架和父框架文件的域将需要匹配,以避免访问被拒绝被大多数浏览器抛出错误。 – Chris

+0

如果我的父母在框架中有另一个域名? – Kiquenet

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

我刚刚成功地使用了下面的代码。它甚至绕过了X-Frame-Options SAMEORIGIN,并允许重定向从一个域到另一个在iframe:

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