如何在WCF中禁用每个请求(基于URL)声明授权?

时间:2013-11-15 17:55:51

标签: wcf url authorization wif claims

我有一个使用基于声明的授权的WCF服务。

我想要做的是将操作归属为ClaimsPrincipalPermissionAttribute,并且只在我的自定义ClaimsAuthorizationManager中使用授权检查触发器一次。但是我发现这个授权检查被触发了两次;一次用于URL,然后第二次用于操作本身。

我找不到关于这个主题的很多信息,但我发现的信息表明这是设计的。是否有可能覆盖此行为并且不对URL执行任何授权,并且仅基于操作授权?

我对基于网址的授权毫无兴趣,而且我宁愿避免为每个网址添加声明,因为我可能会有很多这些网址,而且可能会在将来发生变化。

我已经阅读了几篇文章,并看过Dominick Baier关于这个主题的视频,虽然我从中学到了很多东西,但我还是找不到答案。这根本不可能,我只需处理基于URL的授权吗?

1 个答案:

答案 0 :(得分:2)

您无法更改此行为 - 我所做的是编写发出不同声明类型的自定义声明权限属性。这样我可以区分每请求调用和显式属性。

https://github.com/thinktecture/Thinktecture.IdentityModel.45/tree/master/IdentityModel/Thinktecture.IdentityModel/Authorization

或Thinktecture.IdentityModel nuget包。