2011-09-14 28 views
3

我们应该在哪里将ACL应用到我们的应用程序中?ASP.NET中的ACL MVC

我们有以下结构(简化)现有的ASP.NET MVC应用程序:

  • 数据
  • 业务逻辑
  • 视图模型
  • 控制器
  • 意见

它目前使用角色提供者模型,但我们被要求提供行级权限和功能。从我所做的阅读中,这往往被称为ACL - 访问控制列表,因为它远离角色提供者模型 - 用户对于实体的每个实例可能具有不同的功能。

正如我所看到的那样,需求有两个部分 - 用户根据授予的访问检索实体子集的能力,以及他们能够在访问的实体上执行的功能。

数据访问可能需要尽可能靠近数据层完成 - 它会更安全并且对性能影响较小。我想尽管我们不想检查用户此时的功能级别。我们应该在BL层还是在控制器动作中这样做,类似于我们目前用角色装饰动作方法的方式。

有没有一个现有的框架或产品可以帮助解决这个问题?我们正在关注Azman和SQLAzman--对于SQL Server/Entity Framework堆栈还有其他人吗?

+0

您正在使用什么数据库?它是否提供行级权限? – Oded

+0

这是SQL服务器 – conradj

回答