使用 http 模块或 http 处理程序拦截 C# 中的文件下载?
Intercept a file download in C# using either an http module or http handler?
从 IIS 7.5 服务器上的 ASP.NET / C#
Web 应用程序 运行 下载文件时,如何拦截响应中正在下载的 pdf 文件?响应具有 application/pdf
的 Content-Type
和 10091
的 Content-Length
。
目前我写了一个 HttpModule
覆盖方法:
public void Init(HttpApplication context){
context.BeginRequest+=Context_BeginRequest();
context.EndRequest+=Context_EndRequest();
}
private void Begin_Request(Object sender, EventArgs e){
// this function does not get called when downloading a file!
}
private void End_Request(Object sender, EventArgs e){
// this function does not get called when downloading a file!
}
我需要覆盖哪个函数才能拦截文件下载响应?
web.config 看起来像:
<system.webServer>
<modules runallManagedModulesForAllRequests="true">
<add name="MyMod.Module" type="MyMod.Module"/>
</modules>
</system.webServer>
您没有在 web.config 中显示您是如何注册该模块的,但如果它看起来像这样:
<system.webServer>
<modules>
<add name="mymodule" type="typename, assemblyname" preCondition="managedHandler" />
</modules>
</system.webServer>
那么你只需要删除前提条件属性。否则,您的模块将不会被静态文件调用(以及任何其他可能不会调用托管管道的内容)。
从 IIS 7.5 服务器上的 ASP.NET / C#
Web 应用程序 运行 下载文件时,如何拦截响应中正在下载的 pdf 文件?响应具有 application/pdf
的 Content-Type
和 10091
的 Content-Length
。
目前我写了一个 HttpModule
覆盖方法:
public void Init(HttpApplication context){
context.BeginRequest+=Context_BeginRequest();
context.EndRequest+=Context_EndRequest();
}
private void Begin_Request(Object sender, EventArgs e){
// this function does not get called when downloading a file!
}
private void End_Request(Object sender, EventArgs e){
// this function does not get called when downloading a file!
}
我需要覆盖哪个函数才能拦截文件下载响应?
web.config 看起来像:
<system.webServer>
<modules runallManagedModulesForAllRequests="true">
<add name="MyMod.Module" type="MyMod.Module"/>
</modules>
</system.webServer>
您没有在 web.config 中显示您是如何注册该模块的,但如果它看起来像这样:
<system.webServer>
<modules>
<add name="mymodule" type="typename, assemblyname" preCondition="managedHandler" />
</modules>
</system.webServer>
那么你只需要删除前提条件属性。否则,您的模块将不会被静态文件调用(以及任何其他可能不会调用托管管道的内容)。