2009-08-06 7 views
3

Ich schreibe einen benutzerdefinierten Rollenanbieter und benötige einen programmatischen Zugriff auf die Autorisierungsinformationen, die in der Datei web.config gespeichert sind. Bestimmte Bereiche der Website sind nur für bestimmte Rollen zugänglich. Ich möchte herausfinden, welche Rollen auf eine Seite und/oder auf welche Seite eine bestimmte Rolle zugreifen kann.Zugriff auf Autorisierungsinformationen in web.config

Ich kann nicht scheinen, das herauszufinden.

Antwort

8

Sie können auf alle gespeicherten Informationen wie ConnectionStrings, AppSettings und andere definierte Werte in der webConfigurationManager-Klasse web.config im System.Web.Security-Namespace zugreifen.

Angenommen, Sie definiert haben und Berechtigungs Abschnitt als:

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

Der Abschnitt, den Sie gerade Nutzern bedeutet die Admin hat und/oder Moderator Rollen innerhalb Seiten zugreifen und verweigern jeder (anonym), der versucht, ohne Login-Informationen zuzugreifen.

Um das nennen nur

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

AuthorizationSection Klasse werden Sie Rules Sammlung geben, die genau das, was Sie suchen.

+0

Ich finde keine 'Rules' Sammlung auf dem' AuthenticationSection' Objekt ...? – awe

+0

AuthorizationSection hat die Rules-Sammlung. Ich buchstabierte den Namen der Klasse falsch. Es ist nicht AuthenticationSection, sondern AuthorizationSection, ich habe meinen Beitrag bearbeitet, um den Fehler, den du erwähnt hast, zu bestätigen, danke, dass du mir das bemerkt hast. – Myra

Verwandte Themen