如何使用asp.net捕获和处理静态文件请求?
我已经尝试了" IModule"和" Global.asax"与BeginRequest
但是
请求未被捕获。
IIS中是否有一些设置可以在asp.net中引导某些组件(IModule / Handler / Global.asax / DLL)?
或者某种方式将请求定向到使用C#创建的某些DLL?
例如: "得到http://localhost/myapp/report/report1.html"
如何捕获此请求?
我做不到,进入asp.net。
我希望能够检查权限,并且可以处理该文件并处理响应。
答案 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
和其他)来捕获。