50分求权限的解决方法!下午下班前结帖!

antiking 2004-07-26 02:23:26
我想管理左侧框架页的树。树是写死的不是调数据库。里面分为几大项。
系统员管理
a.投诉信息管理
b.招聘信息管理
c.用户信息管理
业务管理
表查询。
我想不同用户有不同权限,当一个普通用户进来他看不见系统管理这块或为disabled
有好的代码好的意见发个做参考。谢谢了。
...全文
357 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
outspaceman 2004-07-27
  • 打赏
  • 举报
回复
楼主,做人要厚道,下班那么久了还不结贴。

呵呵。另开贴吧。
ghwangtongji 2004-07-26
  • 打赏
  • 举报
回复
将你下载的skmMenu.dll放到你的项目的bin目录下
并且在toolbox里添加该控件
然后在项目的References下添加引用skmMenu.dll
sunj2ee 2004-07-26
  • 打赏
  • 举报
回复
想问一下
ghwangtongji(ghwang)

我使用此控件时出现错误
E:\MsShare\WebForm2.aspx.cs(31): 找不到类型或命名空间名称“skmMenu1”(是否缺少 using 指令或程序集引用?)
我怎么添加USING 指令??
zhangyp 2004-07-26
  • 打赏
  • 举报
回复
针对不同角色调用不同的xml文件
lar99 2004-07-26
  • 打赏
  • 举报
回复
你在注册用户时 就应该给每个用户加权限 这个是要考虑整体 不是局部
当他登陆时根据他的userid来判断他有没有响应的权限!
数据库中当然还要有三个表如下:

表1为用户表 用户ID 用户名 登陆名 注册时间 密码 等等 (注册时最好给密码加密后寸到数据库 至于加密方式可以自定义也可用MD5等一些加密算法)

表2为权限表 权限ID 权限名 等等
表3为用户权限表 用户ID 权限ID



zl194 2004-07-26
  • 打赏
  • 举报
回复
如果只是不显示,可以供panel控件。
ghwangtongji 2004-07-26
  • 打赏
  • 举报
回复
你的问题只是涉及到菜单的访问权限问题,
但我觉得你很有必要进一步在web.config里用Forms Authentication机制对只有系统管理员才能访问的那些页面进行访问权限设置.
ghwangtongji 2004-07-26
  • 打赏
  • 举报
回复
到http://www.skmmenu.com/menu/载skmmenu控件
代码如下:

"系统员管理.xml"
<?xml version="1.0" encoding="utf-8" ?>
<menu>
<menuItem>
<text>系统员管理</text>
<subMenu>
<menuItem>
<text>投诉信息管理</text>
<commandname>MenuItem0_0Click</commandname>
</menuItem>
<menuItem>
<text>招聘信息管理</text>
<commandname>MenuItem0_1Click</commandname>
</menuItem>
<menuItem>
<text>用户信息管理</text>
<commandname>MenuItem0_2Click</commandname>
</menuItem>
</subMenu>
</menuItem>
<menuItem>
<text>业务管理</text>
<commandname>MenuItem1Click</commandname>
</menuItem>
<menuItem>
<text>表查询</text>
<commandname>MenuItem2Click</commandname>
</menuItem>
</menu>

"非系统员管理.xml"
<?xml version="1.0" encoding="utf-8" ?>
<menu>
<menuItem>
<text>业务管理</text>
<commandname>MenuItem1Click</commandname>
</menuItem>
<menuItem>
<text>表查询</text>
<commandname>MenuItem2Click</commandname>
</menuItem>
</menu>

在test.aspx中放置一个skmMenu1,test.aspx的pageload代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
if(user="系统员管理")
{
skmMenu1.DataSource=Server.MapPath("系统员管理.xml");
skmMenu1.DataBind();
}
else
{
skmMenu1.DataSource=Server.MapPath("非系统员管理.xml");
skmMenu1.DataBind();
}
}
}

当然你肯定会遇到点击不同菜单项连接到不同页面的情况
下面是菜单的点击事件:
private void skmMenu1_MenuItemClick(object sender, skmMenu.MenuItemClickEventArgs e)
{
switch (e.CommandName)
{
case "MenuItem0Click": 系统员管理
//以下两种情况选一种:
//如果在skmMenu1的同一页面中放置一Iframe1就:
Iframe1.Attributes["src"]="***.htm";
//如果是新的页面就:
Response.Redirect("***.htm")
break;
case "MenuItem0_0Click": //投诉信息管理
Iframe1.Attributes["src"]="***.htm";
Response.Redirect("***.htm")
break;
case "MenuItem0_1Click": //招聘信息管理
Iframe1.Attributes["src"]="***.htm";
Response.Redirect("***.htm")
break;
case "MenuItem0_2Click": //用户信息管理
Iframe1.Attributes["src"]="***.htm";
Response.Redirect("***.htm")
break;
case "MenuItem1Click": //业务管理
Iframe1.Attributes["src"]="***.htm";
Response.Redirect("***.htm")
break;
case "MenuItem2Click": //表查询
Iframe1.Attributes["src"]="***.htm";
Response.Redirect("***.htm")
break;
}
}
当然你也可以像你自己所说的先不管是不是系统管理员,先把整个菜单加载进来,然后在skmMenu1_MenuItemClick事件中判断权限!

Good luck!
chongachong 2004-07-26
  • 打赏
  • 举报
回复
用Session来判断
owenbeckham 2004-07-26
  • 打赏
  • 举报
回复
根据Session判断:
根据有关Session对应页面上控件的Visible和disabled
这个不难吧,
最好写成一个基类,其他页面继承他就好了。
outspaceman 2004-07-26
  • 打赏
  • 举报
回复
你是wrox网站或apress网站下载 asp.net website Programming 这本书的源码,里面讲的比较详细。
hnliruoyu 2004-07-26
  • 打赏
  • 举报
回复
根据Session判断:
根据有关Session对应页面上控件的Visible和disabled
这个不难吧,
最好写成一个基类,其他页面继承他就好了。
eboywy 2004-07-26
  • 打赏
  • 举报
回复
不是从数据库取比较好。
如不能的话就用panel,设置visible=false就行了。
最后做一个Sessoin数组,或用一个XML文档记录用户的权限,在打开页面时检查,
以避免用户直接输入页面地址进行访问。

62,046

社区成员

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

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

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

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