asp.net C# 用户登录访问和授权以及菜单
本文关键字:授权 菜单 访问 net 用户 登录 asp | 更新日期: 2023-09-27 18:33:52
我正在开发Web应用程序,我有3种类型的用户。众所周知,不同的用户具有不同的访问权限。假设有三个用户 A、B、C。
总共有5个菜单,示例菜单1,菜单2.菜单3,菜单4,菜单5。
我必须设置访问权限,例如
用户 A 可以访问菜单 1,菜单 2.菜单 3,菜单 4,菜单 5。
用户 B 可以访问菜单 2.menu3。
用户 C 可以访问菜单 3,菜单 4,菜单 5。
在此,我可以再添加一个具有不同访问权限的用户。
我的问题是我如何设计数据库以及我应该应用什么逻辑来获得这个结果。
我有一个解决方案,但我正在通过数据库尝试。该解决方案是为不同的用户保留不同的母版页,但这不是一个好的解决方案。
有很多方法可以做到这一点;下面是您可以执行的操作的示例:
- 将所有菜单放在一个母版页中
- Session_Start从数据库中获取他的访问级别并将其存储在会话变量中
- 在母版页Page_Load上,您可以根据访问级别显示和隐藏菜单
从登录标识用户访问级别。母版页内部具有不同的用户级别区域
参考这个 -
如何根据角色使母版页内容可见?[类似的问题]
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.loginview.rolegroups%28v=vs.110%29.aspx [一个好的指南]
-快乐编码-
我假设你只有五个菜单。你可以做这样的事情。
根据我的知识,您需要首先将信息插入到数据库中以进行访问控制。因此,您可以执行类似操作以将值插入数据库以进行访问控制。
User Menu-1 Menu-2 Menu-3 Menu-4 Menu-5
A 1 1 1 1 1
B 0 1 1 0 0
C 0 0 1 1 1
可以使用中继器或 Grdiview 来显示 UI,如上所示。
0和1只不过是复选框。
0- Means checkbox is not checked & user cannot access that menu
1- Means checkbox is checked & user can access that menu
表结构
Create Table User_Details
(
UserId int identity(1,1)
UserName varchar(100),
menu1 bit,
menu2 bit,
menu3 bit,
menu4 bit,
menu5 bit
)
这是关于将有关数据库的信息插入数据库。
Now for Access Control you can Do :
我假设您已将User control
用于菜单。
如果您的用户已登录,那么您将拥有该用户的ID
,并且在菜单(用户控制(的所有页面中,您需要检查您的用户是否有权访问该特定菜单
IF YES :
,您可以使菜单面板对该用户可见
IF NO :
然后您必须在该用户不可见的菜单面板上
在数据操作方面面向对象的方法和效率。
创建 2 个表:t_Users 和t_Types
t_Types具有(ID、角色(等列,角色将是您的访问类型(例如管理员、普通用户(
t_Users具有类似 (ID、名称、类型ID( 之类的列,其中 TypeID 是一个外键,用于分配用户所属的用户类型。