我一直在看ClaimsAuthorizationManager。如果我有以下索赔:
类型 = 员工类型可以查看,值 = "经理"
然后我浏览到我的MVC控制器与mysite/employees/read/managers。 我想看看现任校长是否有权查看经理。
如何将实际的请求参数(即"管理器")传递给 ClaimsAuthorizationManager。 我可以看到如何通过授权上下文的操作和资源属性传递"读取"和"雇主",但看不到参数。
谢谢
Thinktecture IdentityModel helper library是你的朋友。它提供了一个更好的API来执行基于声明的检查,然后你可以使用ClaimsAuthorization.CheckAccess方法传递任意数量的参数。
因此,您应该在操作方法的最开头添加以下代码行:
ClaimsAuthorization.CheckAccess("Read", "Employees", "Managers");
在 CheckAccess 方法中,您可以从上下文中获取员工和经理参数。资源集合。
Nuget Package Thinktecture.IdentityModel
这是文档