2009-08-06 60 views
3

我正在編寫一個自定義角色提供程序,我需要編程訪問存儲在web.config中的授權信息。 網站的某些部分只能由特定角色訪問。我想知道哪些角色可以訪問頁面和/或某個角色可以訪問哪些頁面。訪問web.config中的授權信息

我似乎無法找出這一個。

回答

8

您可以通過System.Web.Security命名空間中的WebConfigurationManager類訪問存儲的任何信息,例如ConnectionStrings,AppSettings和web.config中的其他定義值。

比方說,您已經定義和授權部分爲:

<system.web> 
<authorization> 
    <allow roles="admin,moderator" /> 
    <deny users="?" /> 
</authorization></system.web> 

您剛剛創建的部分意味着誰擁有管理和/或主持人角色可以訪問內的網頁,並拒絕大家用戶(匿名)誰試圖訪問沒有登錄信息。

爲了剛剛叫出WebConfigurationManager的GetSection方法

AuthorizationSection auth = WebConfigurationManager.GetSection("system.web/authorization") as AuthorizationSection; 

AuthorizationSection教室將給你 Rules收集這恰恰是你在找什麼。

+0

我沒有在'AuthenticationSection'對象上找到任何'Rules'集合...? – awe 2009-11-01 11:29:13

+0

AuthorizationSection包含規則集合。 我拼錯了類的名字。這不是AuthenticationSection,而是AuthorizationSection,我編輯了我的帖子來驗證你提到的錯誤,謝謝你注意到我。 – Myra 2009-11-10 13:05:21