TreeView加载不同sitemap文件解决权限控制

来源:互联网 发布:淘宝多久能退货 编辑:程序博客网 时间:2024/04/28 10:06

最近,开始用了用母版页的功能,主要是想实现网页的整体风格统一。转换之后,原本的目录树TreeView是通过数据库绑定的,现在我用了SiteMap导航,但是程序中需要分权限显示不同的目录树。我查了一些资料,可以通过VS2005的网站管理工具来控制。不过,这个需要结合SQL Server2005来实现,用SQL Server 2000也可以,只是设置也麻烦了一些。我的SQL2005管理工具出了点问题,试了很久也没成功。由于自己的程序中权限不是很多,所以考虑用多个SiteMap来切换。

添加不同的web.sitemap文件,同时修改web.config,在system.web下增加如下几个配置项:

  1. <siteMap  defaultProvider="site1" enabled="true">
  2.    <providers>
  3.     <add name="site1" description="Default SiteMap provider." type="System.Web.XmlSiteMapProvider" siteMapFile="Web.sitemap"/>
  4.     <add name="site2" type="System.Web.XmlSiteMapProvider" siteMapFile="Web2.sitemap"/>
  5.  </providers>
  6.   </siteMap>

之后,在母版页的CS文件中的Page_load中写入判断语句:

  1. public partial class MasterPage2 : System.Web.UI.MasterPage
  2. {
  3.     protected void Page_Load(object sender, EventArgs e)
  4.     {        
  5.        // 。。。
  6.         if (!Page.IsPostBack)
  7.         {
  8.             if (Session["RoleID"] != null)
  9.             {
  10.                 if (Session["RoleID"].ToString() == "1")
  11.                     SiteMapDataSource1.SiteMapProvider = "site2";//管理员
  12.                 else if (Session["RoleID"].ToString() == "0")
  13.                     SiteMapDataSource1.SiteMapProvider = "site1";//普通用户
  14.             }
  15.         }
  16.     }
  17. }

 

 

原创粉丝点击