根据用户角色和权限显示不同的导航条

weilezhiliao 2009-08-25 10:24:20
用户角色和权限使用asp.net2.0自带功能。
权限好象是使用在每个文件夹下面的web.config配置的。
treeview作为左侧导航条,sitemap作为数据源,如何实现根据每个用户的角色权限,显示不同的导航条。
...全文
635 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
devilidea 2009-08-26
  • 打赏
  • 举报
回复
<?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>
devilidea 2009-08-26
  • 打赏
  • 举报
回复
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();
}
}
guyehanxinlei 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chenger19890917 的回复:]
一般都是手动写的一个权限管理,用控件循环出来的
[/Quote]
同意
mail_ricklee 2009-08-26
  • 打赏
  • 举报
回复
可以参考FortuneBase数据模型中权限控制部分

参考地址www.cnblogs.com/mail-ricklee
chenger19890917 2009-08-26
  • 打赏
  • 举报
回复
一般都是手动写的一个权限管理,用控件循环出来的
Joson.e8love 2009-08-26
  • 打赏
  • 举报
回复
手动写

polarissky 2009-08-26
  • 打赏
  • 举报
回复
使用站点地图sitemap

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧