• 通过SiteMapDataSource动态获取SiteMap文件进行权限设置


    最近做一个用ASP.NET做一个小项目,用户不是很多,功能不算太复杂,但是做到权限控制的时候有点犯难,这么一个小系统如果全部做一个大的复杂的权限控制觉得成本不划算,打算用Treeview ,根据不同的用户,加载不同的用户web.sitemap文件实现简单的分用户,分模块的权限控制,具体实现如下:

    首先在数据库中建一个简单的用户角色表,以实现不同的用户角色对应不同的web.sitemap文件

    添加不同的web.sitemap文件,同时修改web.config文件如下:

    在system.web下增加如下几个配置项:

    <siteMap>
       <providers>
        <add name="web" type="System.Web.XmlSiteMapProvider" siteMapFile="Web.sitemap"/>
        <add name="mod1" type="System.Web.XmlSiteMapProvider" siteMapFile="mod1.sitemap"/>
        <add name="mod2" type="System.Web.XmlSiteMapProvider" siteMapFile="mod2.sitemap"/>
        <add name="mod3" type="System.Web.XmlSiteMapProvider" siteMapFile="mod3.sitemap"/>
       </providers>
      </siteMap>

    如下是实现的C#代码:

    public partial class Usercontrol_WebUserControlTreeView : System.Web.UI.UserControl
    {
        SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["strcon"]);//建立数据连接

        protected void Page_Load(object sender, EventArgs e)
        {
            GetTreeViewControl();//显示不同权限的菜单
        }

        public void GetTreeViewControl()
        {
            string myRoleID=Session["RoleID"].ToString().Trim();
            if (myRoleID=="0")
            {
                SiteMapDataSource1.SiteMapProvider = "Web";//加载全部权限sitemap
            }
            if (myRoleID == "1"||myRoleID=="2"||myRoleID=="3"||myRoleID=="4"||myRoleID=="5"||myRoleID=="6"||myRoleID=="7")//车队派司机用户
            {
                SiteMapDataSource1.SiteMapProvider = "mod1";
            }
            if (myRoleID == "11" || myRoleID == "12" || myRoleID == "13")//调度用户
            {
                SiteMapDataSource1.SiteMapProvider = "mod2";
            }
            if (myRoleID == "14")//财务用户
            {
                SiteMapDataSource1.SiteMapProvider = "mod3";
            }
        
        }

    对于不严格的权限控制的项目,如上是完全够用的,望各位给出自己的意见和解决方式

    转自:http://blog.csdn.net/baolei1981/article/details/2129836#0-qzone-1-531-d020d2d2a4e8d1a374a433f596ad1440文章

  • 相关阅读:
    Entity Framework 学习中级篇3—存储过程(中)
    Entity Framework 学习高级篇1—改善EF代码的方法(上)
    Entity Framework 学习中级篇2—存储过程(上)
    Entity Framework 学习初级篇7基本操作:增加、更新、删除、事务
    Entity Framework 学习中级篇4—存储过程(下)
    Entity Framework 学习初级篇5ObjectQuery查询及方法
    LINQ之路 9:LINQ to SQL 和 Entity Framework(上)
    在List创建的时候自动加上Rating功能
    利用Feature receiver自动注册/卸载Http Module
    使用SharePoint Web Service(1):创建子站点
  • 原文地址:https://www.cnblogs.com/ChineseMoonGod/p/4241364.html
Copyright © 2020-2023  润新知