Skrýt autorizovaného položku v ASP.NET web.sitemap

hlasů
2

Mám web.sitemap s bezpečností ořezávání povoleno, nicméně musím schovávat položky menu vychází z role na stránku, která nemá žádná pravidla pro přístup v web.config.

tj Mám stránku kampaně, která slouží k prohlížení existující kampaně, stejně jako přidávat nové kampaně, ale chci, „Nové kampaně“ položka menu se skrývá za anonymní uživatelé. Snažil jsem se přidat název role do role atributu v web.sitemap ale to nemá žádný vliv.

Jsem si jistý, že musí být rychlý způsob, jak to udělat beze změny poskytovatele mapu stránek, která je mou další zastávkou.

Položena 29/01/2009 v 14:57
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
2

Pokud je to jen zvláštní případ pro anonymní uživatele, můžete vytvořit druhý Sitemap.

Vytvořit nový soubor WebAnon.sitemap.
Vytvoření nového poskytovatele sitemapy v web.config

<add name="anonProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="WebAnon.sitemap" securityTrimmingEnabled="true"/>

Nastavit SiteMapDataSource je SiteMapProvider vlastnost „anonProvider“ v kódu za sebou pokud jeho anonymní uživatel.

Odpovězeno 30/01/2009 v 20:47
zdroj uživatelem

hlasů
1

rolesAtribut v <siteMapNode />je „umožnit“ seznamu, není popřít. Vytvořit / upravit odpovídající <location />prvek v web.config umožnit ověřeným uživatelům a popření anonymní; např

<location path="campaigns.aspx">
 <system.web>
  <authorization>
   <allow users="*" />
   <deny users="?" />
  </authorization>
 </system.web>
</location>

BTW, pokud používáte jistinu a role Windows, jakékoli změny ve vašem členství ve skupině neprojeví, dokud se odhlásit a znovu zapněte.

Odpovězeno 29/01/2009 v 15:21
zdroj uživatelem

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