在 asp.net 中捕获请求静态文件

Capture request static file in asp.net

如何使用 asp.net 捕获和处理静态文件请求?

我已经用 BeginRequest 尝试了 "IModule" 和 "Global.asax" 但是 请求未被捕获。

IIS 中是否有一些设置可以在 asp.net 中引导某些组件(IModule / Handler / Global.asax / DLL)?

或者通过某种方式将请求定向到使用 C# 生成的某些 DLL?

例如: "get http://localhost/myapp/report/report1.html"

如何捕获此请求?

我做不到,进asp.net。

我希望能够检查权限,能够处理文件,处理响应。

是的,IIS有这样的设置,Handler Mapping

设置决定了不同的文件扩展名将调用处理程序。将 ASP.NET 处理程序设置为所需的扩展名,然后您可以使用 ASP.NET 功能(IHttpModel 和其他)来捕获。

如果您是 运行 集成模式下的应用程序池,最简单的方法是告诉 IIS 将所有请求发送到 "Managed Handlers"。

在您的 web.config 中,您应该有一个 <system.webServer> 元素,它可能有一个 modules 元素 - 将其更新为:

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
  [...]

有了它,您将能够使用 ASP.NET 的所有标准功能,包括对路径的身份验证控制。

请注意,这将通过您的应用程序发送所有请求,因此您会在其中看到对 .css.js 文件的请求,因此如果您尝试锁定所有内容,您将需要让那些打开。