如何在 WCF 中禁用按请求(基于 URL)声明授权?
-
20-12-2019 - |
题
我有一个使用基于声明的授权的 WCF 服务。
我想做的是将操作归因于 ClaimsPrincipalPermissionAttribute
并且在我的自定义中仅触发一次授权检查 ClaimsAuthorizationManager
. 。但是我发现此授权检查被触发两次;一次用于 URL,第二次用于操作本身。
我找不到关于这个主题的太多信息,但我发现的信息表明这是设计使然。我是否可以覆盖这个行为,不对URL进行任何授权,只根据操作进行授权?
我对基于 URL 进行授权没有兴趣,并且真的宁愿避免为每个 URL 添加声明,因为我可能有很多这样的声明,并且它们将来可能会发生变化。
我读过几篇文章,也看过多米尼克·拜尔(Dominick Baier)关于这个主题的视频,虽然我从这些文章中学到了很多东西,但我仍然找不到这个问题的答案。这是否根本不可能,我只需要根据 URL 进行授权?
解决方案
您无法更改此行为 - 我所做的是编写一个自定义声明权限属性,该属性确实会发出不同的声明类型。这样我就可以区分每个请求的调用和显式属性。
或 Thinktecture.IdentityModel nuget 包。
不隶属于 StackOverflow