我一直在查看ClaimsAuthorizationManager。如果我的索赔如下:
Type = TypeOfEmployeesThatCanBeViewed,Value =“Managers”
然后我用mysite / employees / read / managers浏览了我的MVC控制器。我想看看当前的原则是否有权查看经理。
如何将实际请求参数(即“管理器”)传递给ClaimsAuthorizationManager。我可以看到如何通过AuthorizationContext的Action和Resource属性传递“Read”和“Employers”,而不是参数。
由于
答案 0 :(得分:4)
Thinktecture IdentityModel助手库是你的朋友。它为基于声明的检查提供了更好的API,然后您可以使用 ClaimsAuthorization.CheckAccess 方法传递任意数量的参数。
因此,您应该在操作方法的最开头添加以下代码行:
ClaimsAuthorization.CheckAccess("Read", "Employees", "Managers");
在您的CheckAccess方法中,您可以从context.Resource集合中获取Employees和Managers参数。