权限感知(icon)所有模型的动作链接:如何?

时间:2009-09-21 07:58:01

标签: asp.net-mvc permissions actionlink

我有几个模型,我想为它们显示一些常用的动作链接图标(新的,详细的,编辑的,删除的)以及某些特定模型的特定图标;只有在用户有权执行操作时,才能显示这些iconlink。权限由角色决定,但我想抽象它们,以便明确需要的角色只写在一个地方。

我还想使用相同的逻辑来显示图标和“保护”动作方法,这样如果以前需要Foo角色来编辑lolcatz,现在我想将其更改为{ {1}}角色,我只需改变一件事。

有很多方法可以实现这一点,我不确定如何继续。

我可以编写一个Bar类,负责决定单个操作的权限,链接,图标,文本,以及一些ModelAction来收集单个模型的所有可能操作,以便我可以写一个父类和几个降序的。

我的怀疑:

  • 我应该如何将模型与ModelActionsCollection相关联?我应该使用散列还是某些静态类,例如ModelActionsCollection?或SomeStaticClass.GetModelActionsCollection(someModel),或typeof(someModel)或什么?

  • 我应该如何装饰方法?我应该写点什么:

    "className"

    或其他什么?

  • 可以直接在这些类的方法中访问当前经过身份验证的用户,还是应该将用户作为参数接收?

  • 这个类属于哪个命名空间?他们是模特吗?佣工?或者是什么?

  • 最后:有人已经以可重复使用的方式完成了这一切吗?

1 个答案:

答案 0 :(得分:0)

我们正是这样做的

使用权限类型标志和css中图标的字符串装饰您的操作 例如 [ActionModelPermission(typeof(ContactModel),PermissionTypes.Create | PermissionTypes.Edit,“typeIcon typeContact”)]

ActionModelPermission,PermissionTypes和ContactModel都是我们项目中的所有类。

然后我们有自己的ActionLink帮助器,它从提供的lambda中找到方法并进行权限检查,并使用相应的css类构建链接

相关问题