菜鸟请教简单问题--关于.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的做法。