Je roule mon propre SiteMapProvider en héritant System.Web.XmlSiteMapProvider
.Comment XmlSiteMapProvider vérifie-t-il que l'utilisateur occupe le rôle spécifié?
Je veux remplacer la logique de l'utilisateur de vérifier d'être dans un rôle spécifié dans la propriété de siteMapNode roles
:
<siteMapNode url="Add.aspx?type=user" title="Add user" roles="admin" />
Comment puis-je faire cela? Quel membre de la classe XmlSiteMapProvider appelle pour vérifier que si securityTrimmingEnabled="true"
?
Ma question n'a malheureusement attiré aucun utilisateur pendant un certain temps donc j'ai dû trouver la solution par moi-même et heureusement je l'ai fait. Vous ne pourriez pas mentionner que je suis simultanément OP et la réponse simple est mon aussi. Parce qu'accepter sa propre réponse n'apporte aucune réputation, je suis heureux d'accepter votre réponse :) Merci! – abatishchev
@aba - en fait, je n'ai pas remarqué que OP et la réponse provenaient de la même personne, juste que les conseils pourraient être un peu plus clair. Je suis content que vous l'ayez compris et heureux de pouvoir vous aider, si je le pouvais. –
Ok, je peux surcharger 'IsAccessibleToUser' pour appliquer sa propre logique à vérifier. Mais comment * original * 'IsAccessibleToUser' fonctionne? Les réflecteurs montrent qu'il vérifie 'context.User.IsInRole (role)'. Savez-vous comment définir les rôles pour 'IPrincipal'? – abatishchev