sql-server - ASP.NET MVC 中的 ACL

标签 sql-server asp.net-mvc acl

我们应该将 ACL 放在应用程序的什么位置?

我们有一个现有的 ASP.NET MVC 应用程序,其结构如下(已简化):

  • 数据
  • 存储库
  • 业务逻辑
  • 查看模型
  • 控制者
  • 浏览量

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

在我看来,要求分为两部分 - 用户能够根据授予的访问权限检索实体子集,然后是他们能够对访问的实体执行的功能。

数据访问可能需要尽可能靠近数据层进行 - 这样会更安全并且对性能的影响更小。我想我们此时不想检查用户的功能级别。我们应该在 BL 层还是在 Controller 操作中执行此操作,类似于我们目前使用角色装饰操作方法的方式。

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

最佳答案

关于sql-server - ASP.NET MVC 中的 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7414901/

相关文章:

php - 如何使用按位系统允许某些权限而不允许其他权限?

c# - EF Code First 中的计算列

asp.net - 为什么此表单的请求不起作用?

asp.net-mvc - ModelState 中需要 DateTime,但从未设置为

asp.net - 我创造了有史以来最糟糕的标签汤(ASP.NET MVC 2)

powershell - 使用 Set-Acl 定义权限应用的位置

java - @ManyToMany 关系上的 JOIN FETCH 会产生 N + 1 个查询

sql-server - 更改数据捕获-SQL SERVER?

sql-server - 由于 AT TIME ZONE,无法构建 SQL Server Project V12

sql-server - 使用 ACL 授予 Azure 机器学习对虚拟机上 SQL Server 的访问权限