首页 新闻 会员 周边 捐助

关于一个简单权限的问题

0
悬赏园豆:50 [已解决问题] 解决于 2009-03-10 11:57

有两个表

一个是地区表,该表字段为(地区编号,地区名称,地区管理员工号,地区管理员密码,地区管理员姓名),其中,地区编号为9999的记录,对应的管理员为超级管理员

一个是营业厅表,该表的字段为(营业厅编号,营业厅所属地区编号,营业厅名称,营业厅管理员工号,营业厅管理员姓名,营业厅管理员密码,......)

登录页面里有个用户类型选择,用于选取那种管理员登录。主页左边是一个操作目录树,不同权限的用户,看到的目录树的项目不同。这个目录树是用ASP.net下的一个TreeView控件+SiteMapDataSource+SiteMap站点配置文件实现的。当以超级管理员的身份登录时,所有的操作都能看到;当以地区管理员的身份登录时,只能对本地区进行相关操作;当以营业厅管理员的身份登录时,只能对本营业厅进行相关操作。我为不同权限的用户写了相应的sitemap文件,考虑不同权限的用户用不同的sitemap文件。主页面里用了frameset,目录树是其中的一个frameset项,链接到Menu页面,该页面里有TreeView控件。我在Menu页面的cs代码里写替换SiteMapDataSource的SiteMapProvider时,程序运行时老提示无法找到SiteMapProvider的Office,Office.sitemap和Web.sitemap,前者是营业厅管理员使用的站点地图文件,后者为超级管理员和地区管理员使用的。

相关代码如下

Web.config文件中的配置信息

    <siteMap>
      <providers>
        <add name="office"
             type="System.Web.XmlSiteMapProvider"
             siteMapFile="Office.sitemap"/>
      </providers>
    </siteMap>

Menu.aspx.cs

public partial class Menu : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["DistrictId"] == null)
                return;
            else
            {
                SiteMapDataSource1.SiteMapProvider = "office";
            }
        }
    }

JBS的主页 JBS | 初学一级 | 园豆:80
提问于:2009-03-09 09:19
< >
分享
最佳答案
0

            if (Session["DistrictId"] == null)
                return;
你把这一句改了试试!

if(Session["DistrictId"]==null)

{

    SiteMapDataSource1.SiteMapProvider = "";

}

可能是SiteMapProvider不能为null

子夜星辰 | 小虾三级 |园豆:1613 | 2009-03-09 11:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册