2010-01-14 5 views
1

Je construis une petite application web avec un simple schéma d'autentication utilisateur. J'enregistrer les utilisateurs dans web.config, comme ceci:Fournisseur de gestion de rôles utilisant web.config?

<authentication mode="Forms"> 
    <forms loginUrl="~/login.aspx" defaultUrl="default.aspx" ...> 
    <credentials passwordFormat="SHA1"> 
     <user name="UserA" password="B60D121B438A380C343D5EC3C2037564B82FFEF3"/> 
     <user name="UserB" password="B60D121B438A380C343D5EC3C2037564B82FFEF3"/> 
    </credentials> 
    </forms> 
</authentication> 

Il fonctionne très bien, et j'aime pas avoir à compter sur une base de données pour cela dans cette application particulière. Cependant, je suis surpris de constater que vous ne pouvez apparemment pas configurer les rôles dans web.config dans le même manoir - ou est-ce que je manque quelque chose de vraiment évident ici?

Dois-je vraiment implémenter un fournisseur de gestion de rôle personnalisé pour pouvoir configurer mes rôles dans web.config? Si oui, connaissez-vous des implémentations disponibles?

Répondre

3

J'ai créé une implémentation de base de iRoleProvider qui utilise web.config pour le stockage. Vérifiez-le sur Codeplex, Web.Config Role Provider.

+0

Excellente solution - Merci pour l'outil. Juste ce dont j'avais besoin. – AhabLives

1

Cela semble avoir été abordés: Adding Role to User Created in Web.config

Toutefois, si vous avez l'intention de le faire uniquement dans le web.config, il ne serait pas impossible pour vous de créer une section dans le web.config vous utiliseriez pour vos propres paramètres de rôle.

<configuration> 
    <configSections> 
     <section name="UserRoles" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="true" requirePermission="false"/> 
    </configSections> 

    <UserRoles> 
     <add key="UserA" value="Group1,Group2,Group3" /> 
     <add key="UserB" value="Group1,Group3" /> 
    </UserRoles> 
<configuration> 

Ensuite, vous pouvez utiliser le global.asax pour configurer des rôles dans votre objet utilisateur en utilisant la méthode Application_AuthenticationRequest. Je n'ai jamais essayé, mais j'imagine que si vous vouliez utiliser ces rôles dans les éléments d'autorisation de web.config, vous auriez besoin d'utiliser un objet Principal personnalisé pour couvrir les rôles.

Questions connexes