【问题标题】:How to assign privileges to employees by using checkbox selections in asp.net C#如何使用 asp.net C# 中的复选框选择为员工分配权限
【发布时间】:2013-07-27 13:37:36
【问题描述】:

我正在用 asp.net c# 创建一个 Web 应用程序。

该项目用于将任务分配给系统中的不同员工。项目要求,有三种类型的员工,对应的权限分别是basic、supervisor和manager。

“基本”权限只能查看他/她的个人资料。 “主管”可以创建工作,当“经理”批准该工作时,该工作将变为可用,“主管”可以将工作分配给员工。

如上所述,每个权限都有一组可用的“操作”。我的要求如下:-

管理员创建员工后,需要授予员工权限。管理员可以选择权限(例如,对于基本员工-->查看个人资料,查看分配的工作;对于主管-->查看个人资料,创建工作,将员工分配给工作;对于经理-->查看个人资料,创建工作,批准工作,将工作分配给员工;对于管理员-> 所有权限)。管理员应该能够“检查”与每个权限相关的复选框,并根据这些选择,将权限分配给每个员工。

我们如何做到这一点。

注意:- 我不想在 ASP.NET C# 中使用“角色”功能。这是因为,只能使用程序员创建的权限。我希望管理员通过提供角色名称并选择各种权限来创建角色。

我已经查看了默认 asp.net 角色和权限的功能,但我的要求是在球场的另一边。

**该项目有不同的用户,我不想将它们归类为“基本 emp”、“hr”、“pm”等。相反,我希望有一组复选框,然后选择使用复选框获得所需的权限。

通过选择复选框获得权限的员工可以访问相应的页面。

例如:

我有一组具有关联数据的复选框:-

-查看个人资料

-编辑个人资料

-创建项目

-编辑项目

-上传简历

如果我选中它们对应的复选框,它们将可以访问相应的网页。

这怎么可能?**

【问题讨论】:

  • 您必须创建一个自定义实现。例如,创建您自己的角色库控制表
  • 能否提供更多细节?

标签: c# asp.net


【解决方案1】:

您必须创建自己的安全系统。在 asp.net webform 的情况下。创建一个查找表,其中包含问题中出现的所有页面名称都提到了类似这样的内容

           Name           Id   Page
           Edit Profile   1    editProfile.aspx
           Update Resume  2    UpdateResume.aspx

现在在使用表中维护用户和关联页面的关系

           User Id AllowedPageid
             1         1 
             2         1
             2         2

现在创建一个安全类,它可以获取页面的 URL,并有一个返回 true 和 false 的方法

          bool IsAllowed(int UserId , string pageURL)
          {
                 // Get the page name and check the DB of User is allowed to access the page
          } 

确保在每个 Page_Load 方法中调用此方法以检查它是否返回错误重定向到 NoAuthorization 页面

【讨论】:

  • 感谢您的回复。是不是像下面这样?即创建一个包含两列的表,一列用于id,另一列用于对应的页面。然后,创建另一个表“allowed_pa​​ges”,其中每个选定的 chockbox 都根据页面 ID 进行标记?
  • @user2625672 是该表还将存储您想要的用户角色或用户ID,然后它将在允许页面的情况下检查角色ID或用户ID。检查页面加载的原因,因为它会一直调用。
  • 你好@devesh,我现在明白了。我还想问一件事。由于每个用户可以访问不同的页面,而有些人无法访问某些页面,那么如何为每个用户填充菜单项,因为每个用户都有不同的 emnu 项?
  • @user2625672 你可以遵循一个想法,我已经做到了。有一个动态菜单。创建一个菜单控件,一旦用户被授权,获取所有允许的页面并构建菜单。因为它可能来得很慢,所以使用缓存来存储菜单,因为它不会经常改变
猜你喜欢
  • 1970-01-01
  • 2011-03-16
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 2017-07-20
  • 2010-11-23
相关资源
最近更新 更多