我们正在使用 ThinkTecture 的 MVC ClaimsAuthorizeAttribute 控制对应用程序资源和操作的访问,并希望能够使用 Moq 包含一些单元测试覆盖率。
理想情况下,我想编写一个测试,请求一个控制器操作,其中包含:
[ClaimsAuthorize("operation_x", "resource_1")]
...以便在执行测试期间进入我们的 AuthorizationManager 的 CheckAccess 覆盖方法。
我们的 CheckAccess 覆盖只是从传入的 AuthorizationContext(“operation_x”和“resource_1”)获取操作和资源,并确定 Principal 是否具有资源/操作组合作为声明,如果找到匹配项则返回 true。
测试将根据我们的 CheckAccess 覆盖的结果通过或失败。
我在网上找到的大多数示例都是关于单元测试自定义授权属性或测试控制器操作是否已被 AuthzAttribute 修饰。测试 ThinkTecture 的 ClaimsAuthorize 属性的示例似乎并不多。
甚至有可能实现我所描述的吗?如果有,请指教!
谢谢