用户角色和权限使用asp.net2.0自带功能。
权限好象是使用在每个文件夹下面的web.config配置的。
treeview作为左侧导航条,sitemap作为数据源,如何实现根据每个用户的角色权限,显示不同的导航条。

解决方案 »

  1.   

    可以参考FortuneBase数据模型中权限控制部分参考地址www.cnblogs.com/mail-ricklee
      

  2.   

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using Role;public partial class _Default : System.Web.UI.Page 
    {
        string strUserRole = string.Empty;
        protected void Page_Init(object sender, EventArgs e)
        {
            
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            Menu1.DataSource = GetDataSource(strUserRole, Server.MapPath("~"));
            Menu1.DataBind();
        }
        
        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;
                case "User":
                    objData.DataFile = ServerPath + @"/App_Data/User.sitemap";
                    break;
                default:
                    objData.DataFile = ServerPath + @"/App_Data/Default.sitemap";
                    break;
            }
            objData.DataBind();
            return objData;
        }
        protected void btnAdmin_Click(object sender, EventArgs e)
        {
            strUserRole = "Administrator";
            Menu1.DataSource = GetDataSource(strUserRole, Server.MapPath("~"));
            Menu1.DataBind();    }
        protected void btnUser_Click(object sender, EventArgs e)
        {
            strUserRole = "User";
            Menu1.DataSource = GetDataSource(strUserRole, Server.MapPath("~"));
            Menu1.DataBind();
        }
    }
      

  3.   

    <?xml version="1.0" encoding="utf-8" ?>
    <siteMap>
        <siteMapNode url="~/Home.aspx" title="Home"  description="HomePage"/>
        <siteMapNode url="~/CreateUser.aspx" title="CreateUser"  description="CreateUser" />
        <siteMapNode url="" title="Products"  description="Products" >
            <siteMapNode url="~/Software.aspx" title="Software"  description="Software" />
            <siteMapNode url="Hardware.aspx" title="Hardware"  description="Hardware" />
        </siteMapNode>
    </siteMap>