这些是应用程序中的页面
主服务器中有一个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#修复此问题。
答案 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,它应该可以正常工作。