如何使用c#在iframe外部重定向页面

时间:2014-02-27 09:47:00

标签: c# asp.net

这些是应用程序中的页面

  1. Login.aspx(不使用任何主人)
  2. Home.aspx(使用主人)。
  3. 主服务器中有一个IFrame,它可以加载所有网页,例如page1.aspx,page2 ...... 当用户正在浏览说page1.aspx和会话到期时,登录页面会加载到IFrame中,而它应该在外部加载,我的意思是在iFrame之外。

    我希望我的问题有道理

    Page_Init()
    {
      if(Session["user"]==null)
       {
          Response.Redirect("~/Forms/Login.aspx");
       }
    }
    

    这里有JS的解决方案,如window.top.location.href =“..”,但不知道如何实现。 如何使用C#修复此问题。

3 个答案:

答案 0 :(得分:2)

这应该有效

Page_Init()
{
  if(Session["user"]==null)
   {
      string jScript = "window.top.location.href = '/Forms/Login.aspx';";
      ScriptManager.RegisterStartupScript(this, this.GetType(), "forceParentLoad", jScript, true);
      //Response.Redirect("~/Forms/Login.aspx");
   }
}

答案 1 :(得分:2)

如果我们使用客户端脚本但使用非客户端脚本,有很多方法:

<a href="location" target="_top">Click here to continue</a> 

<a href="location" target="_parent">Click here to continue</a>

答案 2 :(得分:1)

iframe中的aspx页面在没有使用javascript的情况下没有引用它的父级。因此,您需要将其实现为javascript。

如果会话过期,您可以在尝试Response.Redirect的同一时间写出JS,它应该可以正常工作。