2009-08-01 7 views
1

J'utilise l'authentification Windows et je n'ai pas d'appartenance personnalisée. Cependant, j'ai un fournisseur de rôle personnalisé et l'ai activé. Cependant, qu'en est-il de l'élément < authorization /> dans le fichier web.config? Dois-je faire quelque chose avec ça aussi?Différence entre Roles.GetRolesForUser et Roles.Provider.GetRolesForUser?

Pour le moment je ne peux pas utiliser la méthode Roles.GetRolesForUser ("") (ne retourne rien) mais doit le faire comme Roles.Provider.GetRolesForUser ("")?

Le plus gros problème concerne les sitemaps, car il n'est pas inclus dans la méthode Roles.IsUserInRole. Pour l'instant, j'utilise un outil xmlsitemapprovider personnalisé pour cela, mais ce n'est pas super.

J'ai activé le gestionnaire de rôles et l'ensemble securitytrimmingenabled à true pour le sitemap dans le fichier web.config.

+0

avez-vous déjà résolu cela? – zsharp

+0

Cela était dû à une erreur dans le cycle de vie du module HttpModule dans lequel l'implémentation IPrincipal a été initialisée. Après avoir placé l'initialisation plus tôt dans le cycle de vie, cela a très bien fonctionné pour moi. –

Répondre

1

Oui, vous devez configurer votre fournisseur de rôles personnalisés dans web.config - quelque chose comme ceci:

<roleManager enabled="true" defaultProvider="SqlRoleManager"> 
    <providers> 
    <add name="SqlRoleManager" 
     type="System.Web.Security.SqlRoleProvider" 
     connectionStringName="SqlRoleManagerConnection" 
     applicationName="MyApplication" /> 
    </providers> 
</roleManager> 

Vous devez également définir security trimming true, aussi. par exemple.

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true"> 
    <providers> 
     <add name="XmlSiteMapProvider" 
     description="Default SiteMap provider." 
     type="System.Web.XmlSiteMapProvider " 
     siteMapFile="Web.sitemap" 
     securityTrimmingEnabled="true" /> 
    </providers> 
    </siteMap> 
+0

J'ai décrit dans ma question que j'avais tous ces paramètres dans le web.config. Apparemment, ce n'était pas clair alors j'ai édité la question et l'ai mise. Désolé mais cette réponse en ce moment ne m'aide pas. –

Questions connexes