Web.config授权:'拒绝用户'标签甚至不允许授权用户

时间:2017-08-21 14:41:44

标签: asp.net iis-7 web-config

我有一个Web.config文件,根据他的角色对登录网页的用户进行身份验证。

目前的实施如下:

<authorization>
  <allow roles = "BUILTIN\Administrators" />
  <allow roles = "PRIVILEGED" />
  <allow roles = "NON_PRIVILEGED" />
  <deny users = "*" />
</authorization>

根据我的理解,上述实现应该允许管理员用户或属于“PRIVILEGED”或“NON_PRIVILEGED”角色的用户。其他不具备上述任何角色的用户应被拒绝访问,其行为由标签<deny users = "*" />

实现。

但是,我发现授权用户(拥有Administrators / Privileged / Non_privileged所需角色)被拒绝访问该网页,并显示消息“404-Unauthorized:由于凭证无效而拒绝访问”

当我从配置文件中删除标记<deny users = "*" />时,我发现授权用户可以毫无问题地访问该网页。删除<deny users = "*" />后,配置文件如下所示< / p>

<authorization>
  <allow roles = "BUILTIN\Administrators" />
  <allow roles = "PRIVILEGED" />
  <allow roles = "NON_PRIVILEGED" />
</authorization>

所以,问题在于标记<deny users = "*" />,它似乎拒绝所有用户的访问,无论他们拥有什么角色。

根据我对Web配置和IIS的基本知识,我可以说配置文件中没有错误地使用<deny users = "*" />。所以,我不知道它为什么拒绝所有用户访问。

目前,我们正在使用IIS版本7。

2 个答案:

答案 0 :(得分:0)

任何未与<allow>标记匹配的用户的默认访问权限是拒绝。

<deny>的重点是覆盖<allow>

答案 1 :(得分:0)

您是否已将角色管理器设置为启用?

<system.web>
    <roleManager enabled="true" />
</system.web>