2013-05-22 94 views
0

我正在構建一個webforms應用程序,將頁面分隔到文件夾中,使用web.config授權這些文件夾中的web頁面,授權頁面僅授權用戶並允許某些頁面具有特定角色。ASP.NET窗體授權不工作

我有一個'beheer'文件夾,其中page1.aspx - page6.aspx駐留。我在這個文件夾中也有一個web.config,如下所示。

我正在登錄系統,因爲用戶具有'Admin'角色,這意味着所有頁面都應該對我可用,如果我轉到page3,page4,page5或page6,它工作得很好,但是去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

位於同一文件夾中的所有頁面? –

+0

是的,全部在同一子文件夾中 – Jurjen

回答

1

我懷疑你實際上是否分配了管理員角色。這部分看起來不對:

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