Asp.net 自定义角色提供程序不起作用的IIS7授权规则

Asp.net 自定义角色提供程序不起作用的IIS7授权规则,asp.net,iis,authorization,membership,role,Asp.net,Iis,Authorization,Membership,Role,有人能告诉我为什么我的IIS子目录授权规则不起作用吗 我怀疑这与使用自定义成员资格和角色提供程序有关。 对于/users子目录中的所有文件,所有用户、匿名用户和登录用户都会收到401.2未经授权的错误 我试图限制对子目录中静态文件和asp.net页面的访问。我在IIS7管理器中使用了授权规则按钮 在/users中,它创建了一个包含以下部分的web.config文件: <system.webServer> <security> <authorization> &

有人能告诉我为什么我的IIS子目录授权规则不起作用吗

我怀疑这与使用自定义成员资格和角色提供程序有关。 对于/users子目录中的所有文件,所有用户、匿名用户和登录用户都会收到401.2未经授权的错误

我试图限制对子目录中静态文件和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>

仍然在玩这个,看起来很有希望。。但我认为可能有一个更优雅的解决方案

<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>

尝试此配置:您好,刚刚在子目录中尝试了该配置,但现在使用静态文件site.com/users/test.jpg,匿名用户和登录用户都可以看到该文件。在IIS中,禁用用户文件夹的匿名身份验证。不幸的是,没有真正的帮助。在禁用子目录配置和匿名身份验证的情况下,登录用户会收到401.2错误唯一的区别是在错误页上,登录用户设置为“尚未确定”,而在原始配置中,登录用户为“匿名”
<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>