在声明授权中包含区域名称资源标识符

时间:2013-12-20 17:45:50

标签: asp.net-mvc wif

我正在尝试创建一个看似非常直接的ClaimsAuthorizationManager实现。但是,由于我的MVC应用程序使用了区域,AuthorizationContext对象的Resource属性(作为CheckAccess方法的参数接收)并未提供有关我的资源的足够信息。

我正在寻找某种方式在Controller或Area级别指示资源描述,而不必修饰每个操作方法。我尝试将[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "MyResourceName")]添加到控制器,但由于缺少Operation值而导致异常。我希望实现分层级联设置。例如,所有ActionMethods都将使用属性中定义的资源,并采用默认的操作标识机制。

我有什么东西在这里失踪吗?是否有用于实现此目的的框架或Thinktecture.IdentityModel辅助工具?是否有机会注册自定义AuthorizationContent生成器类?

谢谢!

1 个答案:

答案 0 :(得分:1)

内置机制对于进行这些检查(因为它基于CAS)有点低级别。您应该查看Thinktecture IdentityModel帮助程序库以获取这些内容。我们提供了一种更简单的机制/ API来进行基于声明的检查:

http://leastprivilege.com/2012/10/26/using-claims-based-authorization-in-mvc-and-web-api/