asp.net - 在 ASP.NET 中通过 HttpModule 处理静态文件

标签 asp.net iis static httphandler httpmodule

我的网站文件夹中有静态文件,但需要检查每个文件的权限。 我决定使用 HttpModule 来实现此目的。

ASP.NET 接收所有 http 请求(我使用通配符映射)和

算法如下:

  1. HttpModule接收请求
  2. HttpModule 检查权限
  3. 如果访问被拒绝,则答案为“禁止”。如果一切正常,那么 httpModule 的方法就会返回。
  4. DefaultHttpHandler 自动用于处理静态文件请求

问题是DefaultHttpHandler不够有效(它没有使用文件缓存等)。但是 IIS(没有 ASP.NET)可以很好地处理静态文件。

我想要的只是让 IIS 在检查后提供静态文件。 有什么办法可以实现吗?

最佳答案

如果您使用的是 IIS7,那么是的,这非常简单。在集成模式下,所有请求都通过托管管道。让 IIS 提供文件服务,但添加 HttpHandler 来执行检查。或者您可以使用 ASP.NET 提供的授权方法之一。

关于asp.net - 在 ASP.NET 中通过 HttpModule 处理静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/989178/

相关文章:

ios - 当声明它的对象被释放时,静态声明的 NSDateFormatter 实例会发生什么?

c# - 无法在 HttpResponseMessage header 上设置 Content-Type header ?

.net - 在 IIS 中托管时如何在任务管理器中显示应用程序名称

windows - Windows 服务器上的 .htaccess 文件

java - 在 Java 中模拟静态方法调用的静态抽象和动态链接

c++ - Const 方法访问静态变量

c# - ASP .NET - 替换和页面输出( donut )缓存 - 如何将自定义参数传递给 HttpResponseSubstitutionCallback 委托(delegate)

asp.net - ASP.Net 的最佳免费文件管理器

asp.net - IIS 7.5 – 应用 Windows Server 2008 R2 SP1 后无扩展 URI 处理的重大变化?

c# - 系统找不到iis服务器中指定的文件