我正在尝试创建一个看似非常直接的ClaimsAuthorizationManager
实现。但是,由于我的MVC应用程序使用了区域,AuthorizationContext
对象的Resource属性(作为CheckAccess
方法的参数接收)并未提供有关我的资源的足够信息。
我正在寻找某种方式在Controller或Area级别指示资源描述,而不必修饰每个操作方法。我尝试将[ClaimsPrincipalPermission(SecurityAction.Demand, Resource = "MyResourceName")]
添加到控制器,但由于缺少Operation
值而导致异常。我希望实现分层级联设置。例如,所有ActionMethods都将使用属性中定义的资源,并采用默认的操作标识机制。
我有什么东西在这里失踪吗?是否有用于实现此目的的框架或Thinktecture.IdentityModel辅助工具?是否有机会注册自定义AuthorizationContent生成器类?
谢谢!
答案 0 :(得分:1)
内置机制对于进行这些检查(因为它基于CAS)有点低级别。您应该查看Thinktecture IdentityModel帮助程序库以获取这些内容。我们提供了一种更简单的机制/ API来进行基于声明的检查:
http://leastprivilege.com/2012/10/26/using-claims-based-authorization-in-mvc-and-web-api/