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

时间:2015-01-14 10:07:28

标签: c# asp.net web

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

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

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

或者某种方式将请求定向到使用C#创建的某些DLL?

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

如何捕获此请求?

我做不到,进入asp.net。

我希望能够检查权限,并且可以处理该文件并处理响应。

2 个答案:

答案 0 :(得分:2)

如果以集成模式运行应用程序池,最简单的方法是告诉IIS将所有请求发送到“托管处理程序”。

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

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

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

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

答案 1 :(得分:1)

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

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