我的用户登入是用session保存的,当我退出时做了session清空操作FormsAuthentication.SignOut();
Session.Clear();
Session.Abandon();
Response.Clear();
//清空缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddDays(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AddHeader("pragma", "no=cache");
例子:
http://localhost:4118/Myhmo/AdminHMO/Login.aspx
问题:当我退出后,直接输入文件地址
http://localhost:4118/Myhmo/AdminHMO/SuccessStory/SuccessStory.aspx
确能够进去。
后来我调试,发现问题所在,session值是已经清空(session值确定已经清空)直接输入文件地址能进去。(因为没有删除游览器历史记录)
点工具--》删除游览器历史记录就可以了。
但是为什么删除游览器历史记录才就可以起到判断作用?如何在清空缓存的时候用程序清空游览器历史记录
我的判断代码if (!IsPostBack)
{
if (Session["user"] == null)
{
Response.Redirect("../index.aspx");
}
请问怎么解决?如何处理
Session.Clear();
Session.Abandon();
Response.Clear();
//清空缓存
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddDays(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AddHeader("pragma", "no=cache");
例子:
http://localhost:4118/Myhmo/AdminHMO/Login.aspx
问题:当我退出后,直接输入文件地址
http://localhost:4118/Myhmo/AdminHMO/SuccessStory/SuccessStory.aspx
确能够进去。
后来我调试,发现问题所在,session值是已经清空(session值确定已经清空)直接输入文件地址能进去。(因为没有删除游览器历史记录)
点工具--》删除游览器历史记录就可以了。
但是为什么删除游览器历史记录才就可以起到判断作用?如何在清空缓存的时候用程序清空游览器历史记录
我的判断代码if (!IsPostBack)
{
if (Session["user"] == null)
{
Response.Redirect("../index.aspx");
}
请问怎么解决?如何处理
if (Session["user"] == null)
{
Response.Redirect("../index.aspx");
}最好将判断session是否为空的操作写在基类中
让所有页面都继承这个基类
在页面加载时判断
{
if (!IsPostBack)
{
if (Session["user"] == null)
{
Response.Redirect("../index.aspx");
}
要放到ispostback外面?
引用 3 楼 q107770540 的回复:
SuccessStory 页面pageload内 ispostback外 添加这段代码:
if (Session["user"] == null)
{
Response.Redirect("../index.aspx");
}最好将判断session是否为空的操作写在基类中
让所有页面都继承这个基类
在页面加载时判断
我现在在模板页ispostback里外都加,还是不行protected void Page_Load(object sender, EventArgs e)
{
if (Session["user"] == null)
{
Response.Redirect("../index.aspx");
}
if (!IsPostBack)
{
if (Session["user"] == null)
{
Response.Redirect("../index.aspx");
}
Response.Expires = -1;
http://hi.baidu.com/zbphot/blog/item/98c4422cee7eeb3f349bf79b.html
我加了这个
Response.Expires = 0;
没有用
Response.Expires = -1;
http://hi.baidu.com/zbphot/blog/item/98c4422cee7eeb3f349bf79b.html
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Expires" content="0" />然后后台代码再加上protected void Page_Load(object sender, EventArgs e)
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Expires = 0;
Response.Buffer = true;
Response.ExpiresAbsolute = DateTime.Now.AddSeconds(-1);
Response.AddHeader("pragma", "no-cache");
Response.CacheControl = "no-cache";
if (!IsPostBack)
{
if (Session["role"] == null || Session["role"].ToString() == "")
{
Response.Redirect("Login.aspx");
}
}
},点击退出时,我转到处理一个页面,然后该页面写上if (!IsPostBack)
{
if (Session["role"] == null || Session["role"].ToString() == "")
{
Response.Redirect("Login.aspx");
}
Session.Remove("role");
Page.RegisterStartupScript("", "<script>location.href='首页';</script>");
}希望能帮到你!O(∩_∩)O~