ASP.NET防后退
如有页面Admin,则在其cs文件中写如下代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.AddHeader("Cache-Control", "no-cache");
Response.Expires = -1;
Response.Cache.SetNoStore();
Response.AddHeader("Pragma", "no-cache");
Response.AddHeader("Last-Modified", DateTime.Now.ToString() + " GMT");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
if (Session["AdminNumber"] == null)
{
Response.Redirect("~/Login.aspx");
}
}
在Login页的cs文件中写如下代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.AddHeader("Cache-Control", "no-cache");
Response.Expires = -1;
Response.Cache.SetNoStore();
Response.AddHeader("Pragma", "no-cache");
Response.AddHeader("Last-Modified", DateTime.Now.ToString() + " GMT");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
if (!IsPostBack)
{
Session.Clear();
}
}
如此便可轻松拒绝页面的回退!
相关文档:
/// <summary>
/// 根据指定参数返回BitMap对象
/// 引用如下:
/// using System.Drawing;
/// 调用例子如下:
......
+++ HiddenField01.aspx页面
++ 页面代码如下:
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:HiddenField ID="HiddenField2" runat="server" />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
++ 后台代码,如下:
protected void Button1_C ......
+++ 修改WebConfig文件:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="connStr" value="Data Source=ora11g;uid=scott;pwd=tiger;unicode=true"/>
</appSettings>
<connectionStrings>
<ad ......
您可以使用HTTP模块,一个到ASP.NET HttpApplicationState类的扩展,在Global.asax编写代码强制ASP.NET在每一个页面请求时自动注入依赖的对象,就像在ASP.NET Web窗体应用程序中讨论的一样.
下列方法显示了一个合适的方法能够获取PreRequestHandlerExecute事件将它自己注入到ASP.NE ......