我正在构建一个webforms应用程序,将页面分成文件夹,使用web.config授权这些文件夹中的网页,仅向经过身份验证的用户授权页面,并允许某些页面使用某些角色。
我有一个'beheer'文件夹,其中包含page1.aspx - page6.aspx。我在该文件夹中也有一个web.config,如下所示。
我正在登录系统,因为用户有“管理员”角色,这意味着我可以使用所有页面,如果我转到第3页,第4页,第5页或第6页,它可以正常工作,但是to page1或page2它不起作用,即使是page2和page3,我收到了一条未经授权的消息。我似乎无法弄清楚我错过了什么。
感谢, Jurjen。
<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>
答案 0 :(得分:1)
我怀疑你确实已经分配了Admin角色。这部分似乎错了:
<location path="Page4.aspx,Page5.aspx,Page6.aspx" >
<system.web>
<authorization>
<allow roles="Admin,UserAdmin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
您不能在路径元素上指定多个资源。有关详细信息,请参阅here。
尝试将其更改为:
<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>