在jsp中有一种有过滤功能的Servlet叫Filter Servlet,能够截获访问指定页面的数据,如果合法则能够访问,否则不能。在asp.net中还没有这种功能的文件吧,或者我还没学到,但我们可以自己写一个aspx页面来实现这个功能。
我以用户登录为例,我将连接数据库验证用户名和密码的代码省略了。
假设我们网站主页面名称为index.aspx,登录页面名称为login.aspx,在“登录”Button的Click事件中输入以下代码
//从登录验证的方法的返回值(bool值,true表示登录成功,false表示登录失败)
bool result = checkLogin();
if(result)
{
Session["flag"]="true";
Response.Redirect("index.aspx");
}
新建一个aspx页面,命名为judge.aspx,这个页面就是起到过滤的功能。
将以下代码放到这个aspx页面的Page_Load事件中
if(Session["flag"]=="null")
{
Response.Redirect("login.aspx");
}
然后在网站需要验证登录的页面的Page_Load事件中输入以下代码:
Server.Execute("judge.aspx");
这样就可以防止用户直接输入需要登录后才能进入的页面的情况,起到过滤功能。