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

  1. 文章中的代码部分的字体较小,这好象是页面模板造成的,没法更改,大家可以把 IE 中将字体设置为“较大”,或者利用 IE7 的页面 Zoom Level 放大来浏览代码。

  2. To: dotAge

    本文中对 Task 层次的实现较为简单,如果 Task 很多,确实在设置 Role<–>Task 的映射关系时比较麻烦。

    有两种做法:

    1) 将多个方法的 Task 指定为同一个

    如 AddItem, RemoveItem, ListItem 等方法上都设置同样的 Task("ItemManage","Item管理") ,这样能大量减少 Task 的数量,但也使得控制粒度变粗了。

    2) 按照 Authorization Manager 的做法(其中分为 Task 和 Operation,一个 Task 可以包含多个 Operation),在 Task 上层再加一层,例如你说的 Category,实现这个也不难,对上文中的相关代码进行更改就可以实现,这一部分不是固定的,是可以根据具体情况灵活定制的。

  3. To 小新0574 :

    谢谢你指出错误,但 FreeTextbox 修改一次,里面的代码就全乱了,所以暂时将错就错,请谅解 🙂

  4. 以上代码是从项目文件提取出来的,所以没有 Demo ,如果你想使用的话,其实很简单:

    1) 新建 Web 项目
    2) 把上文中的 4 个类加入到项目中(Task.cs, SecurityAspect.cs, AzHelper.cs, AzMan.cs)
    3) 按照上文中的 ItemManager 类的方式式来建立一个业务逻辑类
    4) 把上文中的 XML 文件加入到 App_Data 目录下
    5) 新加一个页面,调用你的 ItemManager 类即可

  5. 仅仅是一个RBAC0的实现,且不说操作的层级和关联,还缺少资源约束等必要的东西,我们的做法是建立一个统一的权限管理系统,公司的所有应用都从一个地方获取,角色和操作可以在权限系统中编辑和定义,业务系统可以提供自己的资源组服务,从而实现权限系统和业务系统权限的无缝整合

  6. 2.0中不是提供了membership框架么?基本的角色权限访问都可以了,再稍微配合一下自定义的控制方法就可以吧。。。

  7. 文章在ie6中,opera9,ff中都不能很好的现实….看起来不舒服,要结合多个浏览器…晕倒…

  8. 收益匪浅
    但是由于功力尚浅,看得不甚了了,强烈希望有个Demo下载,或者您发一份给我,谢谢
    sexycoolwolf(at)gmail.com

  9. 作者没有对aop做个很好的规划和设计,这篇文章太正对性了.
    不过很感谢作者,学到了个新的用法"ASP.NET 2.0 中的表达式功能".

  10. 你好, 我也根据你的设计写了类似的继承expression builder的自定义类型,但我发现在编译后代码第一次运行的时候(还没有进入登陆界面接收到用户登陆ID信息), CLR就已经开始加载自定义的expression builder来解释含有<%# %>的页面, 以后就不再解释该页面了,这样的话我的权限验证只能拿到TASK的信息而拿不到USER的信息,不能进行验证.请问这是什么原因?

  11. 问个小问题。这里的ItemManager是从ContextBoundObject继承的,可是如果我的某个类原来就需要从某个父类继承,就无法再继承ContextBoundObject了,那怎么办呢?

  12. 这里没有和用户名关系起来啊?
    如何指定哪个用户有哪个权限啊??

    我也碰到上述疑问,到底怎么用啊?

  13. 非常的厉害!!!!!

    佩服!希望能看到楼主关于权限更深入的文章。就算是一点点思路也好!

    读一篇可以少摸索10天了。

  14. <asp:Button ID="Button1" runat="server" Enabled="<%$ PermissionCheck:AddItem %>" Text="<%$ PermissionCheck:AddItem %>"/>我使用这种方式进行绑定,同时设定断点,但是有时很不稳定,不进入断点,而且给的值是TRUE(其实我给的值是FALSE).

  15. public class ItemManager : ContextBoundObject
    这样局限性我觉得有点大啊,毕竟C#不允许多继承,如果想继承其它类的话,就有点麻烦了。

    另外不知道ASP.net中频繁的用ContextBoundObject的性能如何。

    博主可否把你的代码发给我研究下?
    [email protected]

评论已关闭。