日期:2014-05-18  浏览次数:20473 次

菜鸟请教简单问题--关于.net权限管理
1.请教大家了

设计 用户表  
  角色表
  用户角色表  
  权限表
  用户权限表 

  现在用用户表中的一个角色,比如 张三登陆 
  1.connection连接数据库(sa),判断用户表中的数据和输入的数据是否相同,一样的话就跳转到相关页面.
   
  2.张三对应一个角色,比如说是张三 学生 ,但是这个学生的角色只是在角色表中的,而不是数据库里面定义的角色
  这个表中的学生角色,如何对应到数据库中的学生角色(数据库中没有相应角色),如果不用,又如何把这个用户赋予这个角色

  如何分配到角色和相应的权限.权限也是如此,如何具体把权限分配和关联到数据库中.最好有代码,光说说有时候不太懂啊,
  谢谢大家了.


------解决方案--------------------
一切操作都靠用户表中的用户id为基础就行了啊,sql查询时用下嵌套或者join应该就都可以了
------解决方案--------------------
CREATE PROCEDURE [dbo].[User_Module] 
(@UserName nvarchar(20),
@UserPwd nvarchar(20))
AS
select 权限表.用户权限 from 权限表
where (权限表.Id in (select 用户权限表.权限表Id from 用户权限表
where 用户权限表.角色表Id in (select 角色表.Id from 角色表
where 角色表.用户表Id = (select 用户表.Id from 用户表 where 
用户表.用户名 = @UserName and 用户表.用户密码 = @UserPwd ))))
GO
------解决方案--------------------
这个学生的角色只是在角色表中的,而不是数据库里面定义的角色
--------------------------------------------------
我读了5遍都没看懂。

你是说这个人有角色和权限两种区分是吗?
------解决方案--------------------
应该改一下
角色权限表:id actionid groupid

这样就可以了阿。

通过 用户角色表 可以找到用户的 角色
通过 角色权限表 可以找到用户的 权限

连起来查询就行了阿。

SQL code
select 用户表.id,
       用户表.name ,
       权限表.action,
       角色表.groupname
from   用户表,
       角色表,
       用户角色表,
       权限表,
       角色权限表
where  用户表.id=用户角色表.id
   and 用户表.id=角色权限表.id
   and 用户角色表.groupid =角色表.groupid
   and 角色权限表.actionid=权限表.actionid

------解决方案--------------------
先根据员工得到角色
然后在得到角色的权限
再跟员工的角色去并集

------解决方案--------------------
楼主是不是要问页面如何判断该权限?

比如某一个页面的删除权限,可以写一个方法判断是否该用户具有些权限,如果不具有,则隐藏gridview的删除列

同理,页面级别的也是。
------解决方案--------------------
角色表
添加、删除、修改都对应一个相应的url或者事件。

用数据库去存储这些url或事件

然后从数据库中找到角色可以访问的对应的url或事件名称,判断权限。


------解决方案--------------------
可以了解一下MemberShip的做法。