if (Roles.IsUserInRole(UserName, "Admin"))
  {
  SiteMapDataSource1.SiteMapProvider = "XmlSiteMapProvider";
  }
  else
  {
  SiteMapDataSource1.SiteMapProvider="XmlSiteMapProvider2";
  }
通过用户,角色。模块实现权限控制。根据角色动态添加节点
XmlDataSource GetDataSource(string UserRole, string ServerPath)
  {
  XmlDataSource objData = new XmlDataSource();
  objData.XPath = "siteMap/siteMapNode";
  switch (UserRole)
  {
  case "Administrator":
  objData.DataFile = ServerPath + @"/App_Data/Administrator.sitemap";
  break;
  default:
  objData.DataFile = ServerPath + @"/App_Data/Default.sitemap";
  break;
  }
  objData.DataBind();
  return objData;
  }
  
 
根据数据库动态添加节点
SiteMapNode CreateChildNode(SiteMapNode rootNode, string key, string url, string title)
  {
  SiteMapNodeCollection childNodes = new SiteMapNodeCollection();
  SiteMapNode newNode = new SiteMapNode(SiteMap.Provider, key, url, title);   
  newNode.ParentNode = rootNode;
  childNodes.Add(newNode);
  rootNode.ChildNodes = childNodes;
  return newNode;
  }