防止用户通过地址栏直接访问主页

时间:2021-10-08 17:14:47

     前几天有同学问到一个问题,大概如下:

     存在Login.aspx与Default.aspx页面,由Login.aspx输入正确的用户名与密码访问到Default.aspx,当在Default.aspx正确退出(释放Session),再直接通过浏览器访问,问题便出现了,似乎Session并没有失效,页面仍可以访问。

     查阅了一下相关的资料,原来是页面被缓存的问题,经过测试,得到的解决方案如下:

     1.重新调用原页面的时候在给页面传一个参数:    href="****.aspx?random()"

     2.HTML方法
        <HEAD>
        <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
        <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
        <META HTTP-EQUIV="Expires" CONTENT="0">
        </HEAD>

     3.Response.Buffer = true;
        Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
        Response.Expires = 0;
        Response.CacheControl = "no-cache";
        Response.AddHeader("Pragma", "No-Cache");

     如果大家再遇到类似的问题,可以考虑使用以上的三个解决方案。