0

我正在构建一个 webforms 应用程序,将页面分隔到文件夹中,使用 web.config 授权这些文件夹中的网页,仅将页面授权给经过身份验证的用户,并允许某些页面具有某些角色。

我有一个'beheer'文件夹,page1.aspx - page6.aspx 位于其中。我在该文件夹中也有一个 web.config,如下所示。

我以具有“管理员”角色的用户身份登录系统,这意味着我应该可以使用所有页面,如果我转到 page3、page4、page5 或 page6 它工作得很好,但转到 page1 或page2 它不起作用,我收到未经授权的消息,即使 page2 和 page3。我似乎无法弄清楚我错过了什么。

<configuration>
  <system.web>
    <authorization>
      <deny users="?" />
      <!-- Deny all unauthenticated users -->
    </authorization>
  </system.web>

  <location path="Page1.aspx" >
    <system.web>
      <authorization>
        <allow roles="Page1,Admin,UserAdmin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

  <location path="Page2.aspx" >
    <system.web>
      <authorization>
        <allow roles="Page3,Admin,UserAdmin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

  <location path="Page3.aspx" >
    <system.web>
      <authorization>
        <allow roles="Page3,Admin,UserAdmin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

  <location path="Page4.aspx,Page5.aspx,Page6.aspx" >
    <system.web>
      <authorization>
        <allow roles="Admin,UserAdmin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

</configuration>
4

1 回答 1

1

我怀疑您实际上分配了管理员角色。这部分似乎是错误的:

<location path="Page4.aspx,Page5.aspx,Page6.aspx" >
    <system.web>
      <authorization>
        <allow roles="Admin,UserAdmin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
</location>

您不能在路径元素上指定多个资源。请参阅此处了解更多信息。

尝试将其更改为:

<location path="Page4.aspx" >
    <system.web>
      <authorization>
        <allow roles="Admin,UserAdmin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
</location>
<location path="Page5.aspx" >
    <system.web>
      <authorization>
        <allow roles="Admin,UserAdmin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
</location>
<location path="Page6.aspx" >
    <system.web>
      <authorization>
        <allow roles="Admin,UserAdmin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
</location>
于 2013-05-23T09:17:33.660 回答