2010-05-22 6 views
0

J'utilise mon propre SiteMapProvider qui vient juste d'être hérité et peu réécrit System.Web.XmlSiteMapProvider.Retourne différent siteMapNodes pour différents rôles

Je veux retourner différent siteMapNode pour les clients et pour les gestionnaires. Ou peut-être la même chose, mais avec une propriété différente Title.

Est-ce possible? Si oui, comment puis-je faire cela?

Répondre

1

Voici un article du blog de Scott Gu qui peut vous aider. L'exemple de l'article utilise l'authentification Windows, mais il devrait également fonctionner pour l'authentification par formulaires.

http://weblogs.asp.net/scottgu/pages/Recipe_3A00_-Implementing-Role_2D00_Based-Security-with-ASP.NET-2.0-using-Windows-Authentication-and-SQL-Server.aspx

Si vous souhaitez implémenter différents titres pour des rôles différents, alors voici un exemple de la façon dont cela peut être fait. Tout ce que vous devez faire est de créer deux nœuds pointant vers la même URL. Les raisons pour a = 1 et a = 2 en tant que vars querystring sur l'url est de s'assurer que l'url est unique. Si l'URL n'est pas unique, asp.net se plaindra, sauf si vous pouvez remplacer cette fonctionnalité ...

<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> 
Questions connexes