Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在WCF中禁用每个请求(基于URL)的声明授权?_Wcf_Url_Authorization_Wif_Claims - Fatal编程技术网

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

如何在WCF中禁用每个请求(基于URL)的声明授权?,wcf,url,authorization,wif,claims,Wcf,Url,Authorization,Wif,Claims,我有一个WCF服务,它使用基于声明的授权 我要做的是使用ClaimsPrincipalPermissionAttribute为操作赋予属性,并且在我的自定义ClaimsAuthorizationManager中只触发一次授权检查触发器。然而,我发现该授权检查被触发了两次;一次用于URL,然后第二次用于操作本身 我找不到关于这个主题的太多信息,但我所发现的表明这是故意的。我是否可以覆盖此行为,而不对URL执行任何授权,并且仅基于操作执行授权 我对基于URL的授权不感兴趣,我真的希望避免为每个URL

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

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

我找不到关于这个主题的太多信息,但我所发现的表明这是故意的。我是否可以覆盖此行为,而不对URL执行任何授权,并且仅基于操作执行授权

我对基于URL的授权不感兴趣,我真的希望避免为每个URL添加声明,因为我可能会有很多URL,而且它们将来可能会改变


我读过几篇文章,看过多米尼克·拜尔(Dominick Baier)关于这个主题的视频,虽然我从中学到了很多东西,但我仍然找不到答案。这是不可能的,我还必须处理必须基于URL进行授权的问题吗?

您不能更改此行为-我所做的是编写一个自定义声明权限属性,该属性会发出不同的声明类型。通过这种方式,我可以区分每个请求调用和显式属性


或者Thinktecture.IdentityModel nuget软件包。

啊,我明白了,我想这是一个合理的解决方案-谢谢。我认为我缺少了一些扩展点,可以完全覆盖行为。