Return verschiedene siteMapNodes für verschiedene Rollen
-
04-10-2019 - |
Frage
Ich bin meine eigene SiteMapProvider
verwendet, die nur vererbt wird und wenig neu geschrieben System.Web.XmlSiteMapProvider
.
Ich möchte verschiedene siteMapNode
für die Kunden und für Manager zurückzukehren. Oder vielleicht die gleiche, aber mit unterschiedlicher Title
Eigenschaft.
Ist es möglich? Wenn ja, wie kann ich das tun?
Lösung
Hier ist ein Artikel von Scott Gu Blog, der Ihnen helfen kann. Das Beispiel in dem Artikel wird mit Windows-Authentifizierung, aber es sollte auch Arbeit für die Formularauthentifizierung als auch.
Wenn Sie verschiedene Titel für unterschiedliche Rollen implementieren wollen, dann hier ist ein Beispiel dafür, wie das getan werden kann. Hinweis auf die gleiche URL Alles, was Sie tun müssen, ist zwei Knoten zu erstellen. Die Gründe für a = 1 und a = 2 als Abfragezeichenfolgeflag Vars auf der URL, um sicherzustellen, dass die URL einzigartig ist. Wenn die URL nicht eindeutig ist, wird asp.net beschweren, wenn Sie diese Funktionalität außer Kraft setzen können ...
<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>