.net中的访问控制列表(ACL)抽象层

时间:2011-07-28 19:17:35

标签: c# .net interface acl abstraction

.net中是否有ACL抽象层?我看过一些“最佳实践”文档,但没有很好的基础实现。那么System.Security.AccessControl呢?这是一个很好的起点吗?

ACL应该使用存储在数据库中的角色以及系统中的角色以及内存中对象定义以及数据库对象或文件。所以它应该是通用的和/或易于扩展。

这应该依赖于.net框架中的IPrincipal,IIdentity吗?

Zend在他们的PHP框架中有类似的东西,我正在为C#搜索这种东西而不是移植它(如果已经有标准的解决方案或最佳实践实现)。

@ladislav:

它不能仅用于Web服务,胖客户端或独立应用程序。因此,我正在搜索一个抽象层,可以通过适配器为特定的后端/平台进行扩展。你是对的,我正在为不同类型的对象和正确的定义搜索类似于基于角色的访问管理抽象层。这不应该依赖于您为文件系统中的文件夹设置的ACL。文件系统应该是ACL实现使用的特殊适配器。对我来说,ACL本身就是一个概念,与文件系统无关。文件系统使用ACL概念的实现(即使它在该领域中最为人所知)。不希望硬依赖Win32-api。这就是为什么我要求通用(和广泛)使用的通用和抽象(接口)的东西。你知道zend框架中的实现(我知道它是PHP,但这个概念适用于任何应用程序,而不仅仅是基于Web的)?它是抽象的,可以用于代码中的任何对象

1 个答案:

答案 0 :(得分:4)

示例抽象是库nAcl - .NET Access Control List

  

..."帮助您轻松处理权利矩阵的方案。它可以   也可以通过提供商轻松扩展" ...

特点:

  • 处理您的申请权利
  • 处理权利层次结构
  • 权利在一个地方计算,但可以通过提供商机制从任何地方检索 (似乎是添加多个来源的相关功能)
  • 在静态权限的内存提供程序中
  • 处理路由并将提供商与路由关联的路由器提供商
  • 用于处理Db中的权限的SQL提供程序

...但我还没有在界面中看到IPrincipal的用法。

相关问题