IIS7授权规则与自定义角色提供程序无法正常工作

时间:2015-04-29 12:22:05

标签: asp.net iis authorization membership role

有人可以告诉我为什么我的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>

1 个答案:

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