如何在ms sql server中使用C#/VB(web表单或MVC)管理用户角色和权限?
我正在使用ms sql server和C#开发应用程序,需要用户权限和角色。目前,我创建了这样的表如何在ms sql server中使用C#/VB(web表单或MVC)管理用户角色和权限?,c#,sql,vb.net,C#,Sql,Vb.net,我正在使用ms sql server和C#开发应用程序,需要用户权限和角色。目前,我创建了这样的表 'privileges_table PrivilegeID | PrivilegeName 1 | Create 2 | Update 3 | Delete 4 | View Roles_Table RolesID | RolesName | PrivilegeID
'privileges_table
PrivilegeID | PrivilegeName
1 | Create
2 | Update
3 | Delete
4 | View
Roles_Table
RolesID | RolesName | PrivilegeID | RolesGroup
1 Admin 1 | 1
2 Admin 2 | 1
3 Admin 3 | 1
4 Secretary 2 | 4
5 Remote User 4 | 5
User_Table
UserID | UserName | UserPass | RoleGroup
1 | Wale | m%^#@ | 1
2 | Jane | k*&%$# | 5
'
我该怎么做才能更好地管理这一点,以减少冗余,同时避免使用我的c#/VB编写过多代码?
感谢所有帮助。您可以冷落自己的定制会员提供商。尽管这对于您的需求来说可能是过分的 到目前为止,您所获得的似乎还不错,只需创建一个用户类,并在用户以适当的权限登录时存储该类,然后创建两个函数,如isAllowedUpdate(roleID)为布尔函数、isAllowedCreate(roleID)为布尔函数等
对于需要特权的简单web应用程序,我已经做过几次了。我通常只有一个角色和用户表,但是创建了非常特定的角色-这取决于您希望特权的粒度 您应该利用.Net Framework的模块。这是在web应用程序中管理用户和角色的标准方法,使用此模块甚至可以在桌面应用程序中管理用户 对于ASP.NET MVC,您可以在成员资格模块顶部找到实现标准屏幕和功能的项目,如()
如果可以避免的话,不要重新发明轮子。您的角色表中有一些冗余 特权表没有问题(尽管这通常称为权限) 角色:
ID | Name
---+----------
1 | Admin
2 | Secretary
3 | Remote User
由于一个角色可以有多个prvileges,并且一个权限可以分配给多个角色,因此我们有一个n:m(或多对多)关系,该关系由联接表解析
角色许可表
ID | RoleID | PrivilegeID
---+--------+-------------
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 2
5 | 3 | 4
还有一件关于命名风格的事:如果你用单数或复数命名你的表格,请自己选择,而不是一个用复数,另一个用单数。。。好吧,我希望你明白了;)