【发布时间】:2014-06-01 21:32:04
【问题描述】:
我已经编写了一个 httphandler 来拦截来自特定文件夹的所有 pdf 文件请求,并将用户重定向到登录页面。如果用户通过身份验证,则可以下载文件。我的 web.config 有以下拦截条目
<httpHandlers>
<add verb="*" path="/calderdale/*.pdf"
type="NES.HiLo.Security.CalderDaleAuthenticationHandler, NES.HiLo.Security" />
</httpHandlers>
在 IIS (6.0) 应用程序扩展设置中,我添加了一个带有可执行文件 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 和扩展名 Pdf 的设置。
这可行,但每个 pdf 文件请求都会被拦截,而不是 calderdale 目录中存在的文件。
我已经尝试过此链接Mapping specific folder to HttpHandler in web.config 上给出的解决方案,并删除了应用程序扩展设置,但处理程序确实得到了调用。
有什么想法吗?
【问题讨论】:
-
你可以使用httpModule代替httpHandler。
-
我不能使用 httpmodules,因为我们只能使用 httphandler 通过处理程序来保护文件。例如无论 httpmodule 是否存在,www.domainname.com/foldername/somefile.doc 都会打开该文件
-
@Learner 您提供的链接说要在文件夹中放置另一个 web.config 文件,您拥有 path="/calderdale/*.pdf" 的事实表明您没有完成公认的答案说要做,即将 web.config 放在文件夹 'calderdale' 中并将路径更改为 path="*.pdf"
-
@Learner 是否还映射了 IIS6 来处理通配符扩展? love2dev.com/#!article/… ... 通过告诉 aspnet_isapi 处理 .pdf ASPNET 将处理所有 pdf '查询'... ALL
标签: c# asp.net .net iis-6 httphandler