by Pieter Brinkman
26. February 2009 07:58
For a project I needed to remove menu items to the pages in the folder 'Subscriberpages' when a the user is in the Role of 'Marketing' and 'AccountManagement'. To do this I added the following code to the MenuItemDataBound event.
[code:c#]
protected void mainMenu_MenuItemDataBound(
object sender, MenuEventArgs e)
{
SiteMapNode node = e.Item.DataItem
as SiteMapNode;
if (node.Url.Contains("Subscriberpages"))
{
if (HttpContext.Current.User.IsInRole("Marketing") || HttpContext.Current.User.IsInRole("AccountManagement'"))
{
// Get menu.
Menu topMenu = (Menu)sender;
// Remove dataitem from menu.
topMenu.Items.Remove(e.Item);
}
}
}
[/code]
To generate the menu I used the Web.sitemap and the asp:Menu control.