我有一个使用基于声明的授权的 WCF 服务。
我想做的是使用ClaimsPrincipalPermissionAttribute
对操作进行归因,并且在我的自定义ClaimsAuthorizationManager
中只具有一次授权检查触发器。但是,我发现此授权检查被触发了两次;一次用于 URL,然后第二次用于操作本身。
我找不到太多关于这个主题的信息,但我的发现表明这是设计使然。我是否可以覆盖此行为而不对 URL 执行任何授权,而仅基于操作执行授权?
我对基于 URL 进行授权没有兴趣,并且真的宁愿避免为每个 URL 添加声明,因为我可能有很多声明,并且将来可能会更改。
我读过几篇文章,看过Dominick Baier关于这个主题的视频,虽然我从中学到了很多东西,但我仍然找不到答案。这根本不可能,我只需要处理必须根据 URL 进行授权的问题吗?
您无法更改此行为 - 我所做的是编写一个发出不同声明类型的自定义声明权限属性。这样我就可以区分每个请求的调用和显式属性。
https://github.com/thinktecture/Thinktecture.IdentityModel.45/tree/master/IdentityModel/Thinktecture.IdentityModel/Authorization
或 Thinktecture.IdentityModel nuget 包。