我的用户登入是用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");问题:当我退出后,直接输入文件地址,session值依然存在。
后来我调试,发现问题所在,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");问题:当我退出后,直接输入文件地址,session值依然存在。
后来我调试,发现问题所在,session值是已经清空,直接输入文件地址能进去。(因为没有删除游览器历史记录)
但是为什么删除游览器历史记录才就可以起到判断作用?如何在清空缓存或者清空session的时候用程序清空游览器历史记录
我的判断代码 if (!IsPostBack)
{
if (Session["user"] == null)
{
Response.Redirect("../index.aspx");
}
是清楚。
你用该移除。
再输入一次看看。不用IsPostBack什么的。
加一句试试:Session.Clear();
Session.Abandon();
Response.Clear();
//...
Response.Write("<script src=_blank.aspx ></script>");
除非是用的html控件+ajax请求
我调试,发现问题所在,session值是已经清空,直接输入文件地址能进去。(因为没有删除游览器历史记录)
<meta content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Expires" content="0" />
试试看!
if (Session["user"] == null)
{
Response.Redirect("../index.aspx");
}
if (!IsPostBack)
{
}把判断放到IsPostBack的外面