Jak ovlivní jednotlivé podřízené uzly, když Security Ořezání Sitemap?

hlasů
1

Mám stránky ASP.NET, ve kterém se snažím používat ověřování systému Windows a role Active Directory omezit přístup na některé stránky. Díval jsem se na stránky tutorial od Scott Gu , ale nemohu dost dosáhnout toho, co chci.

Jsem ignorování kořenový uzel v mém SiteMapDataSource. Chci ukázat „Dokumenty“ uzel pro všechny uživatele, ale omezit zobrazení „Hledat“ a rolí „Nahrát“ na 2 různých rolích. Jsem v „doména \ validrole“, ale ne v „doména \ madeuprole“. S sitemap a web.config níže, jsem dostat všechny uzly zobrazeny. Mám-li odstranit roles=*z „Dokumenty“ uzel (jak navrhl Scott Gu), mám vidět žádné uzly.

Existuje způsob, jak mohu omezit zobrazování jednotlivých podřízených uzlů, aniž byste museli psát vlastní kód?

To je můj mapa webu:

<?xml version=1.0 encoding=utf-8 ?>
<siteMap xmlns=http://schemas.microsoft.com/AspNet/SiteMap-File-1.0>
    <siteMapNode url=~/Default.aspx 
                 title=Home>
        <siteMapNode title=Documents roles=*>
            <siteMapNode url=~/Documents/Search.aspx 
                         title=Search Documents 
                         roles=DOMAIN\validrole />
            <siteMapNode url=~/Documents/Upload.aspx 
                         title=Upload Documents 
                         roles=DOMAIN\madeuprole />
            <siteMapNode url=~/Documents/Publish.aspx 
                         title=Publish Documents />
        </siteMapNode>
        <siteMapNode title=Users roles=*>
            <siteMapNode url=~/Users/Search.aspx 
                         title=Search Users 
                         roles=DOMAIN\validrole />
        </siteMapNode>
    </siteMapNode>
</siteMap>

A to je relevantní část mého web.config:

<authentication mode=Windows/>
<authorization>
    <allow roles=DOMAIN\validrole/>
    <deny users=*/>
</authorization>

<siteMap defaultProvider=XmlSiteMapProvider enabled=true>
    <providers>
        <add name=XmlSiteMapProvider
             description=Default SiteMap provider.
             type=System.Web.XmlSiteMapProvider
             siteMapFile=Web.sitemap
             securityTrimmingEnabled=true />
    </providers>
</siteMap>
Položena 27/11/2009 v 10:20
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

Řazeny - je třeba nastavit oprávnění ke stránce v souboru web.config takto:

<location path="Documents/Upload.aspx">
    <system.web>
        <authorization>
            <allow roles="DOMAIN\madeuprole"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>

Snažil jsem se to s cestou "~/Documents/Upload.aspx", ale to nefungovalo - to musí být cesta vzhledem k konfiguračním souboru.

Také jsem musel dát URL v souboru Sitemap uzlů, jako je tento:

<siteMapNode title="Documents" roles="*" url="Made-Up.aspx">

To se zastavil všechno mizí, i když nemám tušení proč. Já nezobrazuje URL, takže jakýkoli vyrobený-up člověk dělá trik.

Odpovězeno 27/11/2009 v 14:34
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more