Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ms sql server中使用C#/VB(web表单或MVC)管理用户角色和权限?_C#_Sql_Vb.net - Fatal编程技术网

如何在ms sql server中使用C#/VB(web表单或MVC)管理用户角色和权限?

如何在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

我正在使用ms sql server和C#开发应用程序,需要用户权限和角色。目前,我创建了这样的表

 '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
还有一件关于命名风格的事:如果你用单数或复数命名你的表格,请自己选择,而不是一个用复数,另一个用单数。。。好吧,我希望你明白了;)