Taglio della sicurezza della Sitemap utilizzando solo gli attributi dei ruoli e non consentire / negare regole altrove

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

Domanda

Sono consapevole che il tag ha i "ruoli" " attributo per compensare i nodi che non hanno " url " attributo, che può essere risolto in altri modi. Non mi interessano questi altri modi, però, vorrei avere tutte le mie autorizzazioni impostate nel mio file Sitemap. Come realizzare questo?

Sto usando RoleProvider personalizzato, MembershipProvider personalizzato e XmlSiteMapProvider predefinito. Ho anche un modulo IHttp di sicurezza per impedire alle persone di arrivarci utilizzando un URL diretto. Sono aperto a diversi approcci.

Grazie in anticipo!

È stato utile?

Soluzione

Puoi implementare il tuo XmlSiteMapProvider e sovrascrivere il metodo IsAccessibleToUser.

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

Altri suggerimenti

Alla fine ho implementato il mio controllo della sicurezza derivando da XmlSiteMapProvider. Era abbastanza semplice.

public override SiteMapNodeCollection GetChildNodes(SiteMapNode node)
{
    return CustomSecurityTrim(base.GetChildNodes(node));
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top