zoukankan      html  css  js  c++  java
  • 通过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文章

  • 相关阅读:
    洛谷 P1464 Function(简单记忆化)
    LightOJ 1422 Halloween Costumes (区间DP)
    POJ 3280 Cheapest Palindrome(区间DP)
    POJ 2955 Brackets(区间DP)
    洛谷 P1880 [NOI1995]石子合并(区间DP)
    POJ 3641 Pseudoprime numbers(快速幂)
    POJ 2142 The Balance(exgcd)
    POJ 1995 Raising Modulo Numbers(快速幂)
    POJ 2115 C Looooops(exgcd)
    ZOJ 1002 Fire Net(dfs)
  • 原文地址:https://www.cnblogs.com/ChineseMoonGod/p/4241364.html
Copyright © 2011-2022 走看看