在我的应用程序文件夹中,我有虚拟应用程序QA。有一个文件夹“help”,其中包含html和其他静态文件。 QA正在使用表单身份验证。
无需身份验证即可访问帮助文件夹中的所有文件(例如,www.mypage.com / QA / help / test.html)。我需要更改它,以便如果用户访问帮助文件夹(html文件或任何其他静态文件)中的文件,则用户将重定向到登录页面。 我在google搜索,我发现的东西是静态文件处理和映射到asp的东西。我正在使用IIS 6.
我试图像这样添加一行
< add name="StaticHandler" type="System.Web.StaticFileHandler" path="*.html" verb="*" validate="true" />
到我的web.config(即在QA文件夹中),但它没有帮助。 实际上,我不明白这一行,也是web.config文件管理的新手。 我还尝试将来自帮助文件夹的所有静态文件放入QA,但它也无济于事。
答案 0 :(得分:2)
确保已将配置文件添加到包含您希望受匿名用户保护的静态文件的目录中(这意味着您将在要保护的目录中有第二个web.config文件)。这将拒绝任何匿名用户(这就是它的作用)。
<configuration>
<appSettings/>
<connectionStrings/>
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</configuration>
IIS正在为ASP.net管道之外的静态文件提供服务。除了添加已添加System.Web.StaticFileHandler
的声明之外,您还需要在IIS中映射扩展。为了确保您的.htm或.html文件通过ASP.net传递并进行身份验证。
在根网站.config文件中添加
<system.web>
<httpHandlers>
<add path="*.html" verb="*" type="System.Web.StaticFileHandler" />
</httpHandlers>
然后你需要在IIS中执行一些操作。这些说明适用于IIS 6.0