假设我在 IIS7 中有一个虚拟文件夹 /topFolder/,在该文件夹中可以有任何可以在浏览器中显示的文件(xml、html、swf、doc 等 - 从 IIS 角度来看通常是“非托管”资源)。在授予打开文件夹下任何文件的请求权限之前,我需要检查一些会话变量,以查看用户是否拥有相关子文件夹和文件的“许可证”。
我尝试使用 IHttpModule 和 IReadOnlySessionState 接口实现一个模块,但是当文件是“静态”而不是 IIS 管理(如 aspx、ashx 等)时,AcquireRequestState 事件中的 Session 始终为空。
如果我使用自定义 HttpHandler,我会得到会话,但我还需要实现内容如何发送到响应。编辑:由于用户没有下载文件,我只希望 IIS 像使用它的 StaticFileModule 一样提供文件。Handler/Module 应该是一个 StaticFileModuleWithAuthorizationHook...
所以我真的想做以下事情: 1. 对于请求 /topFolder/* :检查会话和许可证等 a)如果可以,继续提供文件 b)如果不可以,中断请求,或者只是发送 FORBIDDEN 作为响应。
希望有人可以提供帮助。