2009-08-06 5 views
3

J'écris un fournisseur de rôle personnalisé et j'ai besoin d'un accès par programme aux informations d'autorisation stockées dans le fichier web.config. Certaines sections du site ne sont accessibles que par certains rôles. Je voudrais savoir quels rôles peuvent accéder à une page et/ou à quelle page un certain rôle peut accéder.Accès aux informations d'autorisation dans web.config

Je n'arrive pas à comprendre cela.

Répondre

8

Vous pouvez accéder à toutes les informations stockées, telles que ConnectionStrings, AppSettings et autres valeurs définies dans web.config par la classe WebConfigurationManager dans l'espace de noms System.Web.Security.

Disons que vous avez défini et la section d'autorisation:

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

La section vous venez de créer signifie que les utilisateurs qui a des admin et/ou modérateur rôles peuvent accéder à des pages à l'intérieur et refuser tous (anonyme) qui tente d'accéder sans informations de connexion.

Pour que il suffit d'appeler à la méthode GetSection de WebConfigurationManager comme

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

classe AuthorizationSection vous donnera Rules collection qui est précisément ce que vous cherchez.

+0

Je ne trouve aucune collection 'Rules' sur l'objet' AuthenticationSection' ...? – awe

+0

AuthorizationSection a la collection Rules. J'ai mal orthographié le nom de la classe. Ce n'est pas AuthenticationSection mais AuthorizationSection, j'ai édité mon post pour vérifier l'erreur que vous avez mentionnée, merci de me l'avoir signalé. – Myra

Questions connexes