Devolver diferentes siteMapNodes para diferentes funciones
-
04-10-2019 - |
Pregunta
Estoy usando mi propia SiteMapProvider
que acaba se hereda y System.Web.XmlSiteMapProvider
reescrito poco.
Quiero volver siteMapNode
diferente para los clientes y para los directivos. O tal vez lo mismo pero con diferente propiedad Title
.
¿Es posible? En caso afirmativo, ¿cómo puedo hacer eso?
Solución
Aquí está un artículo del blog de Scott Gu que pueden serle de ayuda. El ejemplo en el artículo se usa la autenticación de Windows, pero debería también trabajo para la autenticación de formularios también.
Si desea implementar diferentes títulos para los diferentes roles entonces aquí es un ejemplo de cómo esto se puede hacer. Todo lo que necesita hacer es crear dos nodos que apuntan a la misma URL. Las razones para a = 1 y A = 2 como cadena de consulta vars en la url es asegurar que la url es único. Si la URL no es única, asp.net se quejará, a menos que se puede anular esa funcionalidad ...
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="default.aspx" title="Home">
<siteMapNode url="page1.aspx?a=1" title="Client Title" roles="Client" />
<siteMapNode url="page1.aspx?a=2" title="Manager Title" roles="Manager" />
</siteMapNode>
</siteMap>