我有一个自定义 IHttpHandler,在 web.config 中指定如下:
<httpHandlers>
<add verb="*" path="*.html" validate="true" type="PipingRedirectHandler" />
<add verb="*" path="*.htm" validate="true" type="PipingRedirectHandler" />
</httpHandlers>
在 IIS 7(在 Win 2008 R22 上)中,我使用 Path 添加了处理程序映射:*.html/*.htm
和可执行文件:%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
.
我还有一个虚拟目录映射到另一台计算机上的 Windows 共享,别名:ClientFiles
,物理路径:\\othermachine\ClientFiles
。我将此虚拟目录设置为“连接为”域用户,该用户对共享具有完全控制访问权限(读取、写入、执行等),但有关网站、应用程序池标识、连接到物理路径的其他所有内容网站的其余部分等等都是默认的(ApplicationPoolIdentity
).
我的 IHttpHandler 可以与网站上的任何本地 html 文件一起正常工作,并且 ClientFiles 虚拟目录中的所有 css 和图像也可以完美工作。唯一的问题是当我尝试从虚拟目录读取 html 文件时。我明白了HTTP 401 Unauthorized
尝试这样做时出错。
我认为本地 ASP.Net ISAPI 试图直接加载文件,而不遵守虚拟目录的“连接为”设置,因此我将应用程序池的身份更改为具有访问权限的同一域用户,以及所有内容seems上班。
我是在想:
- 这是正常的吗?
- 为什么它不使用虚拟目录设置中指定的用户?
- 我是否以适当的方式解决了这个问题?
我认为通过将应用程序池设置为使用域用户会稍微降低安全性,但我宁愿不这样做。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)