下面是类的定义。
using System;
using System.Web;
using System.Web.SessionState;
namespace QTJZ
{
public class Filters : IHttpModule, IRequiresSessionState
{
public void Dispose() { }
public void Init(HttpApplication application)
{
application.AcquireRequestState += new EventHandler(application_AcquireRequestState);
}
public void application_AcquireRequestState(object sender, EventArgs e)
{
HttpApplication application = sender as HttpApplication;
HttpRequest request = application.Request;
HttpResponse response = application.Response;
string url=request.CurrentExecutionFilePath.Trim('/');
string suffix = request.CurrentExecutionFilePathExtension.Trim('.');
if (!url.Equals("Default.htm") && (suffix == "aspx" || suffix == "htm"))
{
object sessionObj = application.Context.Session == null ? null : application.Session["useID"];
if (sessionObj==null)
{
response.Redirect("~/Default.htm");
}
}
}
}
}为了实现过滤的效果,Filters类需要实现IHttpMoeld接口,实现该接口需要有两个方法,一个是Dispose,另一个是Init。Init的参数是一个HttpApplication类型的实例,利用这个实例注册一些事件。由于现在要对URL进行过滤,因此注册的是AcquireRequestState事件。类似事件罗列如下

获取要跳转的url可以用request的CurrentExecutionFilePath属性,而获取请求文件的后缀可以用CurrentExecutionFilePathExtension,至于要按什么规则来判断,按需求而定。我这里是在请求时判断Session是否存在,不存在则跳转回登陆页面。由于要用到Session,打开页面的时候会抛出异常,异常信息是“会话状态在此上下文中不可用。”,在实现了IRequiresSessionState接口之后就没有异常抛出了。
此外,还需要在配置文件Web.config的
Metafox 是一个企业内容管理系统,使用一个特别的模板系统,你可通过一些特定的设计和代码来轻松创建 Web 网站,内容存储在 SQL 关系数据库,通过 Web 进行管理,简单、快速而且高效。 Metafox 0.9.1 发布,该版本改用一种更棒的 URL 风格,实现了 RSS 源(可包含远端网站内容到 Metafox 段中),重定向老的访问密钥到新的密钥,增加 RotateAntispam 技
0
<httpModules> <add name="filters" type="QTJZ.Filters"/> </httpModules>
其中type属性则是上面Filters类的完全限定名
更多ASP.NET中的URL过滤实现代码相关文章请关注PHP中文网!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号