2015-01-14 24 views
3

如何捕獲和處理與asp.net的靜態文件請求?在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

您可能還想看看[如何在IIS 7.5上使用ASP.NET窗體驗證保護靜態文件?](http://stackoverflow.com/q/2903292/33051) –

回答

2

如果您在集成模式下運行應用程序池,最簡單的方法是告訴IIS將所有請求發送到「託管處理程序」。

在你的web.config,你應該有可有modules元素的<system.webServer>元素 - 更新,爲:

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

由於在地方,你就可以使用ASP的所有標準功能.NET包括路徑上的認證控制。

請注意,這將通過您的應用程序發送所有請求,因此您將在該處看到對.css.js文件的請求,因此如果您嘗試鎖定所有內容,則需要將其保持打開狀態。

1

是的,IIS有這樣的設置,Handler Mapping

該設置決定處理程序將被調用不同的文件擴展名。將ASP.NET處理程序設置爲所需的擴展,並且可以使用ASP.NET功能(IHttpModel和其他)來捕獲。