asp.net页面Session问题
登陆的时候,用 Session["name"]=username; 初始化Session,转到只有登陆才能看到的页面,
在Page_Load()里面用 if( Session["name"] == null ) 进行验证,然后注销的时候用 Session["name"]=null,然后转到登陆页面,但是 注销以后点一下浏览器的后退,仍然回到了登陆后的页面
上,难道 浏览器的后退 不触发 Page_Load() 事件吗?
验证到底应该怎么做?在线等ing.....
问题点数:20、回复次数:9Top
1 楼Nils(睡瞌睡等机会)回复于 2005-05-03 20:40:40 得分 1
try:
Page_load()
{
if( !Page.IsPostBack )
{
if( Session["name"] == null ) {...}
}
}Top
2 楼singlepine(小山)回复于 2005-05-03 20:41:51 得分 1
if( Session["name"] == null )
{
Response.Redirect("login.aspx");
}
Top
3 楼hushan518(海阔天空)回复于 2005-05-03 20:43:35 得分 0
我就是这样写的阿,注销以后通过后退仍然可以到登陆后的页面阿?
那位高手知道??Top
4 楼zhouweiwansui(彪悍的论点不需要解释)回复于 2005-05-03 20:46:01 得分 0
if( !Page.IsPostBack )去掉。
删除session用Session.removeTop
5 楼hushan518(海阔天空)回复于 2005-05-03 21:04:20 得分 0
都不行啊,主要是通过浏览器的后退,不是控件触发的回传就可以看到只有登陆的页面了Top
6 楼zfangla(金滩碧海)回复于 2005-05-03 23:24:07 得分 0
EnableViewState = false.不让他保留状态。这样在后退,或者刷新的时候就不保留原状态。Top
7 楼fancyf(凡瑞)回复于 2005-05-03 23:51:30 得分 15
点后退一般不会重新向服务器发送请求,而是使用客户端缓存中的页面
注销后服务器端的状态改变了,但是点“后退”仍然打开的是缓存了的为注销的页面
可以加一句
Response.Cache.Setcacheability(System.Web.HttpCacheability.Nocatch)
来禁止缓存Top
8 楼fancyf(凡瑞)回复于 2005-05-03 23:53:31 得分 3
要让全部的页面都不进行缓存可以在Global.asax.cs中写
protected void Application_BeginRequest(Object sender, EventArgs e)
{
HttpContext.Current.Response.Cache.SetNoStore();
}Top
9 楼hushan518(海阔天空)回复于 2005-05-04 00:07:20 得分 0
谢谢楼上的,问题解决!!!Top
相关问题
- asp页面如何调用.net页面
- 在.net的页面与asp的也面中可以传递session吗?
- asp的页面和aspx的页面,怎么传递session?!
- asp页面跟aspx页面session传值问题
- 能否在.NET页面里面获取ASP页面里面创建的SESSION值(同一站点下)!!!!!(在线等)急急急急急急
- 在asp.net页面中是否可以访问asp页面中定义的session?
- asp.net和asp的混合登录,如何不用跳转页面来达到同时建立.net的session和asp的cookie
- 怎样将asp.net中Session值传给asp页面?
- asp中离开一个页面时,把session的值去掉
- 怎样在asp页面中使用.net组件




