利用 AOP 实现 .NET 上完整的基于角色的访问控制(RBAC)模型

近期帮别人在 ASP.NET 中实现简捷的安全/权限控制,于是进行了相关研究与内容搜集,并整理成代码,已在实际的项目中运用,效果突出,比 .NET 中的代码访问安全性(CAS)和 ASP.NET 中的相关安全控制机制更为灵活。

于是把其中实现的内容和主要代码共享出来,但内容较多,放在在随笔里会干扰大家查看首页的视线,所以归到文章里,感兴趣者可以在这里http://blog.joycode.com/moslem/articles/85194.aspx)查看。

本文及其中的代码主要介绍了以下内容:

  • 如何在 C# 中简捷/方便地进行 AOP 编程
  • 如何利用 AOP 来透明地在业务逻辑对象中进行权限检查
  • 如何实现完整的基于角色的访问控制模型
  • 如何在UI上针对不同的用户权限对控件进行设置(如禁止或隐藏)
  • 如何设置 Attribute,如何利用反射获取程序集中所有的、指定类型的 Attribute 定义
  • 其他相关内容

“利用 AOP 实现 .NET 上完整的基于角色的访问控制(RBAC)模型”的2个回复

  1. 你所实现的基于角色的访问控制并不能取代CLR的CAS,CAS把安全做到了代码级,Windows的安全机制只控制是谁在运行当前代码,而不去控制代码的出处,这种安全机制也就是你所说的基于角色的安全机制,而CAS会根据代码的身份来给代码赋予相应的权限,如通过IE宿主运行的代码默认就不能对文件系统进行读写,不能调用非托管代码等等。CAS是CLR的重要组成部分,是框架级别的服务,而你所说的基于角色的安全机制则是应用级别上的服务,两者互不相关,没有任何可比性,当然也就不能相互取代。

    Sheva

  2. To Sheva:

    绝大部分同意你的观点,我在这里提到 CAS ,也是指应用程序层次,很多人会尝试在应用程序层次使用 CAS 来解决权限管理问题,但有时会发现实现过程并不顺利,所以才提出 AOP 的 RBAC 模式。

评论已关闭。