在.NET MVC应用程序中"深入"角色的距离是多少?

Chr*_*ris 5 asp.net-mvc asp.net-membership roles

我编写了一些复杂的MVC应用程序,这些应用程序都是基于角色的,并使用.NET Membership.在我的第一个项目中,我使用了与此类似的结构的角色:

  • 管理员
  • 经理
  • 赞同者

我很快发现它的可扩展性不高,例如客户会说"我希望特定用户x具有所有管理员权限但不能删除".然后,我必须在该控制器中为该用户设置一个hack.

因此,我的第二个实现导致了这个角色结构:

  • CanCreate
  • CanDelete
  • CanEditAll
  • CanEditOwn

这种方法导致了几十个角色,这些角色基于他们是否可以全局编辑特定项目或只是他们自己的等等.它还会导致更多的控制器操作和更多的代码 - 尽管这可能只是复杂应用程序中的情况!

我的问题是,我是否以正确的方式接近这一点,并且是否有任何良好的在线资源以"正确"的方式处理具有大量角色的复杂应用程序.我这样做了吗?

Tom*_*uλa 4

事实上,这是一个非常有趣的话题,我发现自己也遇到了和你一样的问题。

\n\n

我阅读了 Derick Bailey 的有趣博客“ Don\xe2\x80\x99t 进行基于角色的授权检查;进行基于活动的检查”: http: //lostechies.com/derickbailey/2011/05/24/dont-do-基于角色的授权检查-基于活动的检查/

\n\n

但没有时间亲自尝试。

\n