eeee lo so che rompo ma questa non so proprio come prenderla 
Ho un menu nella masterpage siffatto:
codice:
<asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" Orientation="Horizontal" RenderingMode="List" StaticEnableDefaultPopOutImage="False"></asp:Menu>
<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" />
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode title="main">
<siteMapNode title="Menu admin">
<siteMapNode title="tab1" url="tab1.aspx" view="1"></siteMapNode>
</siteMapNode>
<siteMapNode title="Menu utenti" >
<siteMapNode title="tab2" url="tab2.aspx" view="2"></siteMapNode>
</siteMapNode>
<siteMapNode title="Menu visitatori" >
<siteMapNode title="tab3" url="tab3.aspx" view="3"></siteMapNode>
</siteMapNode>
</siteMapNode>
</siteMap>
Ora nella masterpage devo nascondere alcune voci di menu a seconda dell'utente che entra nel sito.
Riesco a farlo per i childitem (cioè con tutte le voci tab1, tab2, tab3) usando l'istruzione seguente
codice:
Protected Sub Menu1_MenuItemDataBound(ByVal sender As Object, ByVal e As MenuEventArgs) Handles Menu1.MenuItemDataBound
Dim mi As MenuItem = e.Item
Dim node As SiteMapNode = mi.DataItem
....
if node("view") = "1" then
mi.Parent.ChildItems.Remove(mi)
end if
....
ma non riesco a rimuovere in nessun modo il nodo con il padre (es quello con title="Menu admin" nel caso l'utente sia un visitatore)!
Sottolineo che nella parte aspx, ho indicato al sitemapdatasource di nascondere lo startingnode (alias <siteMapNode title="main">) e credo questo determini che per il nodo padre che voglio rimuovere non posso usare l'istruzione di rimozione suddetta perchè il nodo da rimuovere risulta avere parent=nothing....
Ma allora come diavolo posso fare per rimuovere quel nodo?