Menú y funciones del mapa del sitio

Estoy tratando de crear un menú de mapa del sitio basado en roles, pero cuando agrego todos los roles al menú raíz y luego solo roles individuales a los elementos de menú individuales, siempre obtengo todo dentro del menú.

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="" title="Menu"  description="" roles="Role1;Role2;Role3">
    <siteMapNode url="~/page1.aspx" title=""  description="" roles="Role1;Role2;Role3">
    </siteMapNode>
    <siteMapNode url="~/page2.aspx" title=""  description="" roles="Role2; Role3">
    </siteMapNode>
    <siteMapNode url="~/page3.aspx" title=""  description="" roles="Role3">
    </siteMapNode>
  </siteMapNode>
</siteMap>

Como se indicó anteriormente, los roles 1,2,3, 1 y 1 pueden ver el menú raíz. Soy parte de RoleXNUMX, por lo tanto, solo debería poder ver pageXNUMX.aspx, pero en cambio puedo ver los tres.

¿Cómo arreglar eso?

El menú se mostrará así:

Pagina1 | Pagina2 | Página 3

entonces, si solo estoy en Role1, debería ver:

Página 1 |

preguntado el 22 de mayo de 12 a las 15:05

Gracias. Pero parece que no puedo hacer el menú asp: usando archivos y roles de mapa del sitio, ya que el acceso a cada página debe realizarse en el archivo web.config y no en el archivo del mapa del sitio. Hace que el mapa del sitio sea inútil para crear menús basados ​​​​en roles. -

3 Respuestas

Siga el tutorial del menú del mapa del sitio de 4guysfromrolla Sección 3 - Configuración de la navegación del sitio para usar recortes de seguridad

Los ajustes de navegación del sitio se pueden configurar a través del archivo Web.config usando el siguiente patrón:

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

siga el artículo para obtener información detallada..

contestado el 23 de mayo de 12 a las 08:05

gracias, ese enlace explica completamente los mapas del sitio y en realidad no funcionan como uno podría pensar, pero el mapa del sitio solo se usa para brindar acceso adicional a personas que no tienen ciertos roles (es decir, otorga acceso de administrador a alguien que no tiene el rol de administrador) - sd_dracula

¿Configuró securityTrimmingEnabled en verdadero?

contestado el 23 de mayo de 12 a las 08:05

lo hice si Pero para acceder está bien ya que puedo usar: pero el problema es usar Web.sitemap, que se vuelve inútil si solo se necesita para dar acceso a usuarios que no tienen un rol en particular. es decir, se le puede dar acceso a una persona que no sea administrador a las páginas de administración si su función se agrega al mapa del sitio: sd_dracula

Sí, está habilitado.

<siteMap defaultProvider="WMSSiteMapProvider">
      <providers>
        <clear/>
        <add name="WMSSiteMapProvider" type="System.Web.XmlSiteMapProvider" securityTrimmingEnabled="true" siteMapFile="WMS.sitemap"/>
      </providers>
    </siteMap>

contestado el 23 de mayo de 12 a las 10:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.