【问题标题】:Setting Up User Permissions设置用户权限
【发布时间】:2015-08-01 16:29:37
【问题描述】:

根据用户名设置页面权限的最佳方法是什么?这是我的困境:
我需要设置用户安全性并希望从一开始就这样做(为什么我问)。

我将有用户(并且这些名称可以更改)在这些组之一中:

  • 全管理员
  • 私人用户
  • 员工
  • 温度
  • 合同

并将根据用户名所属的组授予对特定页面的访问权限。
但是,我将有一些一次性的情况,其中说 privelageduser 的成员将需要访问 fulladmin 页面之一,但只有 1 页,而不是 fulladmin 获得的完整页面。
例如,假设一个完整的管理员有权访问第 1、2、3、4、5、6、7、8、9、10、11、12、13、14、15 页,而privelageduser 有权访问第 1、2、3、4、5、6 页 但是privelageduser 组中的这个特定用户名需要访问第 1、2、3、4、5、6、11 页。

由于 1-offs 我不能只授予“FA”、“PU”、“EM”、“TE”、“CO”的“安全级别”标志。

【问题讨论】:

  • 以及告诉我们这是 MVC 还是 WebForms;您还使用什么身份或会员提供商?
  • IMO 没有best way 来解决此类问题,但是有很多“好方法”-> 到目前为止您想到了什么?您希望它如何工作?
  • @ChrFin - 我正在考虑根据安全标志设置对页面的访问。但不确定如何处理用户没有真正落入上述任何标志的一次性情况。

标签: c# asp.net security webforms user-permissions


【解决方案1】:

如果您使用的是 MVC,您可以尝试使用 Authorize attribute。这允许您通过用户名和/或角色进行授权:

[Authorize(Users = "Tom, Chris")]
 public ActionResult SpecificUserOnly()
 {
     return View();
 }


[Authorize(Roles = "Admin, SuperAdmin")]
public ActionResult AdministratorsOnly()
{
    return View();
}

如果您有非常特殊的需求,您甚至可以create a customized authorize attribute

【讨论】:

【解决方案2】:

ASP.Net 有你可以使用的Membership Provider Doc

另一个选项可能更重,您可以尝试使用您的数据库表创建角色、组、用户。创建这些后,您可以利用应用程序的业务层为上述实现自定义逻辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-25
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 2018-12-10
    相关资源
    最近更新 更多