ASP.NET Menu és a kifele mutató linkek

ASP.NET-ben a Menu vezérlő szuperül használható a weboldal menüjének megjelenítésére. Adatait tudja például SiteMap állományokból venni, iránya mélysége beállítható. Sőt ha bekapcsolod a securityTrimminget, akkor nem mutatja meg azokat a menüpontokat, melyek mögött található oldalakat nincs jogod megnézni. A pontos működési mechanizmusáról már volt szó korábban is.

Menu + SecurityTrimming vs. külső oldalak

Tanfolyamon vettük észre, hogy ha be van kapcsolva a securityTrimming, akkor a Menu vezérlő nem jeleníti meg a kifele (például más portálokra)  mutató hivatkozásokat.

Az alábbi sitemap állományból például az MSDNKK-blogra mutató menüpont nem jelenik meg, ha bekapcsolod a securityTrimminget a web.configban:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="" title="ASP.NET Menu Test Site"  description="hidden"
        roles="*" >
        <siteMapNode url="~/Default.aspx" title="Home"  description="" />
        <siteMapNode url="~/Admin/" title="Admin"  description="">
            <siteMapNode url="~/Admin/Default.aspx" title="Admin's Home"  description="" />
        </siteMapNode>
        <siteMapNode url="http://www.msdnkk.hu" title="MSDNKK"  description="" />
        <siteMapNode url="~/Login.aspx" title="Login"  description="" />
    </siteMapNode>
</siteMap>

A hozzá tartozó web.config részlet:

<siteMap>
    <providers>
        <remove name="AspNetXmlSiteMapProvider"/>
        <add name="AspNetXmlSiteMapProvider"
            siteMapFile="web.sitemap"
            type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
            securityTrimmingEnabled="true" />
    </providers>
</siteMap>

Azt, hogy ez miért így működik néhány kör google után sem tudnám megmondani.

workaround

Ami viszont biztos, hogy a sitemap megfelelő siteMapNode tagjének roles="*" attribútummal való ellátása itt is segít:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
    <siteMapNode url="" title="ASP.NET Menu Test Site"  description="hidden"
        roles="*" >
        <siteMapNode url="~/Default.aspx" title="Home"  description="" />
        <siteMapNode url="~/Admin/" title="Admin"  description="">
            <siteMapNode url="~/Admin/Default.aspx" title="Admin's Home"  description="" />
        </siteMapNode>
        <siteMapNode url="http://www.msdnkk.hu" title="MSDNKK"  description="" roles="*" />

        <siteMapNode url="~/Login.aspx" title="Login"  description="" />
    </siteMapNode>
</siteMap>

Ennek hatására az MSDNKK-blogra mutató menüpont megjelenik a menüben mindenki számára.



Dávid Zoltán

Dávid Zoltán Mérnök Informatikusként végeztem a BME-n, jelenleg webfejlesztéssel és gépi tanulással foglalkozom.

2008.11.17. 16:08:25 | Permalink | Hozzászólások: 0 | Tárgyszavak: ,


  • Beágyazott operációs rendszerek, 0. nap (Ismerkedés)

    Kővári Bence Visszagondolva, hosszú években mérhető, hogy mikor nyúltam utoljára olyan géphez, amelyben csak egy processzormag, vagy éppen gigabájtokban nem mérhető mennyiségű RAM volt. Most mégis megtörtént, egy régóta dédelgetett hobbiprojektemnek hála. A következő pár napban bemutatom, miként sikerül (vagy éppen nem sikerül) életet lehelnem egy – mai szemmel nézve – buta kis számítógépbe. Hangsúlyoznám, hogy egyelőre semmilyen tapasztalatom nincsen ezen a téren, szóval előre is elnézést azoktól, akiket az időnként naív próbálkozásaim untatnának. Tovább »
  • Unknown device megfejtése

    Balássy György (MS RD, ASP.NET MVP, MCTS) Bár a Windows egyre jobban felismeri a gépben lévő hardvereket, bizony még mindig ott tartunk, hogy nekünk kell néhány eszközmeghajtót letölteni a gyártó honlapjáról és megküzdeni a telepítés nehézségeivel. Új gépeknél, 64 biten, szervereknél ez különösen megfigyelhető. A kérdés persze az, hogy melyik a hiányzó driver? Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások