使用 web.config 拒绝未经授权用户的静态内容
Deny static content for unauthorized users using web.config
在我的 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
你有两种实现方式。
第一名:<modules runAllManagedModulesForAllRequests=“true” /> Meaning
在您的 web.config
中添加 <modules runAllManagedModulesForAllRequests="true" />
(IIS < v7)
第二名:Global.asax Events in IIS 6 and IIS 7 for Static Resources
添加一个通配符管理的处理程序来服务每个请求(包括由 iis 直接处理的静态文件)
您可以在需要应用权限的文件夹中放置一个新的 Web.config。在里面做这样的事情
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
或者您可能需要用 <security>
标签包裹 <authorization>
标签。
如果这对您不起作用,请尝试通过 IIS 管理器执行此操作,看看它是如何执行的,然后复制它。
在我的 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
你有两种实现方式。
第一名:<modules runAllManagedModulesForAllRequests=“true” /> Meaning
在您的 web.config
<modules runAllManagedModulesForAllRequests="true" />
(IIS < v7)
第二名:Global.asax Events in IIS 6 and IIS 7 for Static Resources
添加一个通配符管理的处理程序来服务每个请求(包括由 iis 直接处理的静态文件)
您可以在需要应用权限的文件夹中放置一个新的 Web.config。在里面做这样的事情
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>
或者您可能需要用 <security>
标签包裹 <authorization>
标签。
如果这对您不起作用,请尝试通过 IIS 管理器执行此操作,看看它是如何执行的,然后复制它。