关于框架session问题

小豪 2011-06-16 11:12:59
后台里面建了一个首页,左边是用TreeView,而右边是用iframe框架做的。点击选项,右边出现对应的页面。。

我首页已经用了session判断,但是如果我在其他页面用的话,不会整个页面都跳转到login.aspx,只是框架页面那部分跳转了。

要怎样才能是跳转到完整的页面???

try
{
if (Session["UserName"].ToString()== "")
{
Page.RegisterStartupScript("", "<script language='javascript' type='text/javascript'>location.href='../login.aspx';</script>");
}
}
catch (Exception ex)
{

}
...全文
169 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2011-06-17
  • 打赏
  • 举报
回复
下面是3框架的

protected virtual void setFrameJS()
{
string scriptHtml = "<script language=JavaScript>";
scriptHtml += "\n" + "var temp=\"index.aspx\";";
scriptHtml += "\n" + "var tempUrl=window.self.location.href;";
scriptHtml += "\n" + "if(window.top==window.self)";
scriptHtml += "\n" + "{";

scriptHtml += "\n" + "if(tempUrl.indexOf(\"top.aspx\")>-1){";
scriptHtml += "\n" + "window.top.location.href=temp;";
scriptHtml += "\n" + "}";

scriptHtml += "\n" + "else if(tempUrl.indexOf(\"left.aspx\")>-1){";
scriptHtml += "\n" + "window.top.location.href=temp;";
scriptHtml += "\n" + "}";

scriptHtml += "\n" + "else{ temp=\"index.aspx?url=\"+window.self.location.href;";
scriptHtml += "\n" + "}";
scriptHtml += "\n" + "window.top.location.href=temp;";
scriptHtml += "\n" + "}";
scriptHtml += "</script" + ">";
if (!ClientScript.IsClientScriptBlockRegistered("framejs"))
this.RegisterStartupScript("framejs", scriptHtml);
}
「已注销」 2011-06-17
  • 打赏
  • 举报
回复
在ASP.NET页面 load方法里 调用此方法就可以了

你把该方法写在一个类里面 然后每个页面继承一下

调用方法
「已注销」 2011-06-17
  • 打赏
  • 举报
回复
不需要用session
给你个例子:

protected virtual void setFrameJS(){


string alertScript = "<script language=JavaScript>";
// alertScript += "\n" + "alert('window.top:' + window.top.location.href);";
// alertScript += "\n" + "alert('window.self:' + window.self.location.href);";
alertScript += "\n"+"if(window.top==window.self)";
alertScript += "\n"+"{";

alertScript += "\n"+"var temp=\"index.aspx?url=\"+window.self.location.href;";
// alertScript += "\n" + "alert('Temp:' + temp);";
alertScript += "\n"+"window.top.location.href=temp;";
alertScript += "\n"+"}";
alertScript += "</script" +">";
if (!ClientScript.IsClientScriptBlockRegistered("framejs"))
this.RegisterStartupScript("framejs", alertScript);
}


这是用js跳转技术 当你单独访问其他框架页面 自动给该页面加上框架

小豪 2011-06-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 liuchaolin 的回复:]

这个要单独建一个.cs来存放,将作为你后台的基类
public class ManagePage : System.Web.UI.Page
{
private void ManagePage_Load(object sender, EventArgs e)
{
if (Session["UserName"].T……
[/Quote]
也是没效果~- -
小豪 2011-06-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wddjzzxsdz 的回复:]

Response.Write("<script>parent.window.location.href='login.aspx'</script>");
[/Quote]
这样写是可以,可是每个框架页面都要这样写,有点费劲~
wddjzzxsdz 2011-06-17
  • 打赏
  • 举报
回复
Response.Write("<script>parent.window.location.href='login.aspx'</script>");
wddjzzxsdz 2011-06-17
  • 打赏
  • 举报
回复
Response.Write("<script>parent.window.location.href='login.aspx'</script>");
我是这么写的 没有问题
周煜皓 2011-06-17
  • 打赏
  • 举报
回复
top.location.href
md5e 2011-06-16
  • 打赏
  • 举报
回复
这个要单独建一个.cs来存放,将作为你后台的基类
public class ManagePage : System.Web.UI.Page
{
private void ManagePage_Load(object sender, EventArgs e)
{
if (Session["UserName"].ToString() == "")
{
Page.RegisterStartupScript("", "<script language='javascript' type='text/javascript'>location.href='../login.aspx';</script>");
return;
}
}
}

其它页面的引用
public partial class BackGround_indext : ManagePage
{
protected void Page_Load(object sender, EventArgs e)
{

你滴明白?
小豪 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liuchaolin 的回复:]

public class ManagePage: System.Web.UI.Page
{
private void ManagePage_Load(object sender, EventArgs e)
{
if(session["userid"]==null)
{
Response.Write("<script>alert(\"……
[/Quote]
没效果~后台首页加的代码

public partial class BackGround_indext : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//try
//{
// if (Session["UserName"].ToString()== "")
// {
// Page.RegisterStartupScript("", "<script language='javascript' type='text/javascript'>location.href='../login.aspx';</script>");
// }
//}
//catch (Exception ex)
//{

//}
}
public class ManagePage : System.Web.UI.Page
{
private void ManagePage_Load(object sender, EventArgs e)
{
if (Session["UserName"].ToString() == "")
{
Page.RegisterStartupScript("", "<script language='javascript' type='text/javascript'>location.href='../login.aspx';</script>");
return;
}
}
}
public void PageExit()
{
Session["UserName"] = "";
Response.Write("../login.aspx");
}
}
md5e 2011-06-16
  • 打赏
  • 举报
回复
public class ManagePage: System.Web.UI.Page
{
private void ManagePage_Load(object sender, EventArgs e)
{
if(session["userid"]==null)
{
Response.Write("<script>alert(\"你没有登陆或登陆超时,该干嘛干嘛!\");</script>");
return;
}
}
}
小豪 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 liuchaolin 的回复:]

public partial class Manage_Index : Galsun.Nfdw.Web.UI.ManagePage

将每个一页面都继承自己写的一个判断权限的基类
[/Quote]

没懂....- -
md5e 2011-06-16
  • 打赏
  • 举报
回复
public partial class Manage_Index : Galsun.Nfdw.Web.UI.ManagePage

将每个一页面都继承自己写的一个判断权限的基类
小豪 2011-06-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wxr0323 的回复:]

StateServer
[/Quote]
能不能具体点,难道每个框架页面都有判断,这样不是很费劲啊!!!
子夜__ 2011-06-16
  • 打赏
  • 举报
回复
StateServer

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧