我们应该在哪里将ACL应用到我们的应用程序中?ASP.NET中的ACL MVC
我们有以下结构(简化)现有的ASP.NET MVC应用程序:
- 数据
- 库
- 业务逻辑
- 视图模型
- 控制器
- 意见
它目前使用角色提供者模型,但我们被要求提供行级权限和功能。从我所做的阅读中,这往往被称为ACL - 访问控制列表,因为它远离角色提供者模型 - 用户对于实体的每个实例可能具有不同的功能。
正如我所看到的那样,需求有两个部分 - 用户根据授予的访问检索实体子集的能力,以及他们能够在访问的实体上执行的功能。
数据访问可能需要尽可能靠近数据层完成 - 它会更安全并且对性能影响较小。我想尽管我们不想检查用户此时的功能级别。我们应该在BL层还是在控制器动作中这样做,类似于我们目前用角色装饰动作方法的方式。
有没有一个现有的框架或产品可以帮助解决这个问题?我们正在关注Azman和SQLAzman--对于SQL Server/Entity Framework堆栈还有其他人吗?
您正在使用什么数据库?它是否提供行级权限? – Oded
这是SQL服务器 – conradj