Ответ.Redirect() в iFrame, перенаправить родительское окно

Я знаю, что это невозможно, но какая лучшая альтернатива для желания сделать Response.Redirect из iFrame, чтобы перенаправить родительскую страницу?

3 ответов


вы не можете сделать это, используя 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.родитель.местоположение = 'http://yoursite.com-на стороне клиента.


Я просто использовал следующий код с успехом. Он даже обошел X-Frame-Options SAMEORIGIN и позволяет перенаправлять из одного домена в другой в iframe:

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

С строку интерполяции (начиная с C# 6):

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

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