Découpage de la sécurité du plan Sitemap utilisant uniquement les attributs de rôles, et non autoriser / refuser les règles ailleurs

StackOverflow https://stackoverflow.com/questions/1033299

Question

Je suis conscient que la balise a les "rôles". attribut à compenser pour les nœuds qui n'ont pas le & ur; url " attribut, qui peut être résolu d’autres manières. Ces autres manières ne m'intéressent pas, cependant, j'aimerais que toutes mes autorisations soient définies dans mon fichier sitemap. Comment accomplir cela?

J'utilise CustomProvider, MembershipProvider et XmlSiteMapProvider par défaut. J'ai aussi un module de sécurité IHttpModule pour empêcher les gens de s'y rendre en utilisant une URL directe. Je suis ouvert à différentes approches.

Merci d'avance!

Était-ce utile?

La solution

Vous pouvez implémenter votre propre XmlSiteMapProvider et remplacer la méthode IsAccessibleToUser.

public override bool IsAccessibleToUser(HttpContext context, SiteMapNode node)
{
     return <condition in which access is allowed>
}

Autres conseils

Finalement, j'ai mis en place mon propre découpage de sécurité en dérivant de XmlSiteMapProvider. C'était assez simple.

public override SiteMapNodeCollection GetChildNodes(SiteMapNode node)
{
    return CustomSecurityTrim(base.GetChildNodes(node));
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top