ロール/ユーザーに基づいてサイトマップを設定しようとしています..(ロールメンバーシッププロバイダーのため、セキュリティトリミングを使用できません。サーバー側にあり、実装が複雑になるため)することは、アイテムを取り外して実行した後に簡単に実行することです。
次のように定義されたWebサイトマップがあります。
<siteMapNode title="Gestion des roles" url="" description="Gestion des roles">
<siteMapNode url="~/Membership/AddRole.aspx" title="Ajouter Role" description="Ajouter role" />
<siteMapNode url="~/Membership/DeleteRole.aspx" title="Supprimer Role" description="Supprimer un role" />
</siteMapNode>
<siteMapNode title="Gestion des sites" url="" description="Gestion des sites">
<siteMapNode url="~/Membership/AddSite.aspx" title="Ajouter Site" description="Ajouter un nouveau site" />
</siteMapNode>
私が今アクセスしている方法は、次のコードです。
Menu menu = (Menu)Master.FindControl("Menu1");
String valuePath = @"Gestions/Gestion/Ajouter";
MenuItem item = menu.FindItem(valuePath);
if (item.Parent != null)
item.Parent.ChildItems.Remove(item);
しかし、アイテムを実行するとnullになり、例外がスローされます。読んでくれてありがとう