有人可以告诉我为什么我的IIS子目录授权规则不起作用吗?
我怀疑这与使用自定义成员资格和角色提供程序有关
所有登录的用户,匿名用户和用户都会对401.2 Unauthorized
子目录中的所有文件收到/users
错误。
我正在尝试限制对子目录中的静态文件和asp.net页面的访问。我在IIS7管理器中使用了“授权规则”按钮。
在/users
中,它已使用此部分创建了web.config
文件:
<system.webServer>
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Deny" users="?" />
<add accessType="Allow" roles="auth_users" />
</authorization>
</security>
</system.webServer>
在网站根目录的web.config
中是这些自定义角色和成员资格设置。成员资格和角色提供者工作正常 - 用户被添加到角色中,它只是不起作用的授权规则。
<roleManager enabled="true" defaultProvider="MyRoleProvider">
<providers>
<remove name="AspNetSqlRoleProvider" />
<add name="MyRoleProvider" type="System.Web.Security.SqlRoleProvider" applicationName="MyUsersApp" />
</providers>
</roleManager>
<membership defaultProvider="MyMembershipProvider">
<providers>
<remove name="AspNetSqlMembershipProvider" />
<add name="MyMembershipProvider" type="System.Web.Security.SqlMembershipProvider" applicationName="MyUsersApp" />
</providers>
</membership>
答案 0 :(得分:0)
仍然在玩这个,它看起来很有希望..但我在想那里可能是一个更优雅的解决方案。
<location path="users">
<system.web>
<authorization>
<allow roles="auth_users" />
<deny users="*" />
</authorization>
</system.web>
<system.webServer>
<handlers>
<add name="HTML" path="*.html" verb="GET, HEAD, POST, DEBUG" type="System.Web.StaticFileHandler" />
<add name="JS" path="*.js" verb="GET, HEAD, POST, DEBUG" type="System.Web.StaticFileHandler" />
<!--More static file types...-->
</handlers>
</system.webServer>
</location>