【问题标题】:MVC5 EF6 UserRightsMVC5 EF6 用户权限
【发布时间】:2013-12-15 21:24:10
【问题描述】:

我想知道在 MVC 应用程序中检查实际登录用户权限的最佳做法是什么。我想在视图和控制器上执行此操作。

实际上我可以检查实际登录的用户是否具有这样的角色:

User.IsInRole("roleName");

我有权限的表。每个权限都包含名称和枚举权限表示。我想要完成的是 IPrincipal 或 IIdentity 的扩展方法,因此我可以像这样检查用户的权限:

扩展方法示例:

    public static class MyPrincipal
    {
       public static string HasRight(this IPrincipal principal, EnumRight right)
       {
           // THIS would be place where I would check if a user have right with specific enum.
           return true/false;
       }
    }

然后在视图或控制器上我可以这样使用:

if(User.HasRight(EnumRight.AddDocuments) )
{
    //DO SOMETHING
}
  1. 这是一种好的做法,或者我怎样才能更简单地执行类似的机制?也许是独立的静态类而不是扩展?

  2. 如何在我的扩展方法中获取实际用户 ID 以从数据库中获取检查用户是否拥有权限所需的任何数据?

【问题讨论】:

    标签: asp.net-mvc rights-management


    【解决方案1】:

    通常,您会实现一个授权过滤器,并将其应用于您的操作方法。这是link 如何实现动作过滤器。

    【讨论】:

      猜你喜欢
      • 2013-11-23
      • 1970-01-01
      • 2016-02-05
      • 2015-07-02
      • 2015-11-27
      • 2015-07-21
      • 1970-01-01
      • 2015-02-10
      • 2010-09-13
      相关资源
      最近更新 更多