权限管理

权限管理
2007-12-12 17:27

之前的权限解决方案过与复杂,其实在ASP.NET里权限设置比较简单,主要有2种解决方法(我了解到的)

1:利用。NET的权限管理方法,其基本思想是:
首先,每个用户必须属于某个“角色”,而每个角色对于每个模块又会有相应的代码。这是一种处理权限的标准思路,也就是说,分为用户表(包含每个用户的所属角色)、角色模块权限表。这样,便可以处理复杂的权限关系。


我看它是利用管理文件方法,来管理每个用户是否有权限管理文件的思路,用户表、角色表 在。NET环境上都有现成模板可以使用,如果要扩充
用户的权限,也仅仅需要把用户表在设置,在网上可以找到相应的解决办法的。然后在写代码的时候判断,这个用户所属的角色是否有权限操作。


权限管理的一点思路 (网上的资料,不知道对不,自己到网上再找找)

在一个WinForm项目中的权限管理部分,使用MDI窗体,从主窗体上的menu打开MDI子窗体,对每个子窗体都有一个权限ID,打开时要判断user是否有权限,为了把校验这部分作的通用些,使用了下面的实现:
1.定义一个接口IRight,里面只有一个方法GetRightID,入下:


interface IRight
{
string GetRightID();
}
2.每个MDI子窗体都继承这个接口,在实现GetRightID中返回一个权限ID,例如:
public string GetRightID()
{
return "Customer";
}
3.在主窗体上打开子窗体的地方,加上对权限的检验,例如:
Form2 f = new Form2();
if ( UserHaveRight(GetUserRights("Admin",f)) )
{
f.MDIParent = this;
f.Show();
}
else
{
f.Dispose();
}
其中调用的两个函数:
private bool UserHaveRight(ArrayList currentUserRights, IRight formWillOpen)
{

 

2:第二种方法其实就是我昨天发给你那种解决办法,自己建立表来解决权限管理问题,3个表基本可以搞定。
权限管理的核心,就是对不同权限的用户,分配管理对应权限的资源。
  
   本例以一个网站栏目后台管理模块(资源)的权限管理为例,实现了不同用户的权限管理。
  
   数据库设计:
  
   帐户信息表:
   f_i_autoid 自动编码(主键)
   f_i_orderid
   f_accountid 帐户编码
   f_accountname 帐户 (外键)
   f_password 密码
   f_accounttype
   f_username
   f_remark
   f_datetime
  
  
   栏目信息表:
   f_i_autoid 自动编码(主键)
   f_i_orderid
   f_lanmuid 栏目编码
   f_lanmuname 栏目 (外键)
   f_ishidden
   f_remark
   f_datetime
  
  
   权限表:
   f_i_autoid 自动编码(主键)
   f_accountname 帐户 (外键)
   f_lanmuname 栏目 (外键)
   f_remark
   f_datetime
  
   通过权限表的 f_accountname 帐户(外键)和 f_lanmuname 栏目(外键)把帐户信息表
   和栏目信息表联系起来,通过给“帐户”分配“栏目”,或者给“栏目”分配“帐户”,使帐户和栏目建立关系(可以是“一对多”“多对一”或者“多对多”)。
  
   然后以当前登陆的帐户为基准,在权限表中查找其可管理的栏目(资源)。

 

总结:第一种办法由于在。NET下已经有摸板可以使用,所以比较简单,但是需要找找相关设置的资料。第二中方案灵活,网上资料也很多。在哪本 《C#入门经典》上有点介绍。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值