在我的asp.net MVC应用程序中,我试图从子文件夹中的html文件中拒绝未经授权的用户。但它没有按预期工作。下面是现在使用的web.config部分。
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<authentication mode="Forms">
<forms loginUrl="~/" defaultUrl="~/" slidingExpiration="true" timeout="60">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
<location path="Docs/help/index.html">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>
</configuration>
我认为全局拒绝用户将阻止所有页面的所有未经授权的访问,否则我们应该给予特定的许可。如果我错了,请纠正我。
但在我的情况下,即使http://siteurl.com/Docs/help/index.html仍然可以访问未授权的用户。
IIS - 7.5,.NET - 4.5,MVC - 4
请帮我解决此问题。
MG
答案 0 :(得分:0)
你有两种方法可以实现它。
第1名:<modules runAllManagedModulesForAllRequests=“true” /> Meaning
在您的web.config中添加<modules runAllManagedModulesForAllRequests="true" />
(IIS&lt; v7)
第二名:Global.asax Events in IIS 6 and IIS 7 for Static Resources
添加通配符托管处理程序以提供每个请求(包含由iis直接处理的静态文件)
答案 1 :(得分:0)
您可以将新的Web.config放入需要应用权限的文件夹中。在里面做类似的事情
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
或者您可能需要用<authorization>
标签包裹<security>
标签。
如果这对您不起作用,请尝试通过IIS管理器进行操作并查看其效果,然后将其复制。