Recorte de seguridad del mapa del sitio utilizando solo atributos de roles, y no permitir / denegar reglas en otros lugares

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

Pregunta

Soy consciente de que la etiqueta tiene los "roles". Atributo para compensar los nodos que no tienen la " url " atributo, que se puede resolver de otras maneras. Sin embargo, no estoy interesado en estas otras formas, me gustaría tener todos mis permisos configurados en mi archivo de mapa del sitio. ¿Cómo lograr esto?

Estoy usando RoleProvider personalizado, MembershipProvider personalizado y el XmlSiteMapProvider predeterminado. También tengo un IHttpModule de seguridad para evitar que las personas lleguen allí usando una URL directa. Estoy abierto a diferentes enfoques.

¡Gracias de antemano!

¿Fue útil?

Solución

Puede implementar su propio XmlSiteMapProvider y anular el método IsAccessibleToUser.

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

Otros consejos

Al final, implementé mi propio recorte de seguridad derivando de XmlSiteMapProvider. Fue lo suficientemente simple.

public override SiteMapNodeCollection GetChildNodes(SiteMapNode node)
{
    return CustomSecurityTrim(base.GetChildNodes(node));
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top