2

我在网站文件夹中有 statiс 文件,但需要检查每个文件的权限。我决定为此目的使用 HttpModule。

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

算法如下:

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

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

我想要的只是让 IIS 在我检查后提供静态文件。有没有办法实现它?

4

2 回答 2

2

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

于 2009-06-13T12:26:32.350 回答
1

我有一个可用于在 IIS 6 中流式传输文件的解决方案。它具有所有优点,例如可恢复下载、客户端缓存(etag 和过期)和服务器端缓存。

http://code.google.com/p/talifun-web/wiki/StaticFileHandler

在提供文件之前扩展以包含授权应该很容易。

于 2010-02-18T17:15:04.790 回答