Domanda

Ho una mappa web con il taglio di sicurezza abilitato, tuttavia devo nascondere una voce di menu basata su un ruolo in una pagina che non ha regole di accesso in web.config.

cioè ho una pagina Campagna che viene utilizzata per visualizzare le campagne esistenti e per aggiungere nuove campagne, ma voglio la quot &; Quotazioni Nuove campagne &; voce di menu da nascondere per utenti anonimi. Ho provato ad aggiungere il nome del ruolo all'attributo ruoli nella web.sitemap ma questo non ha alcun effetto.

Sono sicuro che ci deve essere un modo rapido per farlo senza modificare il fornitore di sitemap che è il mio prossimo porto di scalo.

È stato utile?

Soluzione

Se questo è solo un caso speciale per utenti anonimi, è possibile creare una seconda SiteMap.

Crea un nuovo file WebAnon.sitemap.
Crea un nuovo fornitore di sitemap in web.config

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

Imposta la SiteMapProvider proprietà su " anonProvider " nel codice dietro se si tratta di un utente anonimo.

Altri suggerimenti

L'attributo roles in <siteMapNode /> è un " consentire " lista, non un rifiuto. Crea / modifica un elemento <location /> corrispondente in web.config per consentire agli utenti autenticati e negare l'anonimato; per es.

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

A proposito, se stai usando un'entità e dei ruoli di Windows, le modifiche all'appartenenza al tuo gruppo non avranno effetto fino a quando non ti disconnetti e poi riaccedi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top