Wcf 有选择地将授权策略应用于操作

Wcf 有选择地将授权策略应用于操作,wcf,configuration,authorization,Wcf,Configuration,Authorization,我有一个WCF服务,它将多个操作公开为RESTful API。服务上的大多数操作不需要身份验证/授权,但需要一个或两个。我需要使用的授权策略超出了我的控制范围,而且运行成本很高。因此,我希望避免在那些不需要它的操作上使用它 似乎在配置中定义的授权策略必须应用于整个服务-无法将它们应用于选择性操作。这意味着我需要想出另一种机制来选择性地将授权策略应用于特定操作 操作行为没有帮助,因为ServiceSecurityContext.AuthorizationPolicys集合是只读的 把我的服务分成两

我有一个WCF服务,它将多个操作公开为RESTful API。服务上的大多数操作不需要身份验证/授权,但需要一个或两个。我需要使用的授权策略超出了我的控制范围,而且运行成本很高。因此,我希望避免在那些不需要它的操作上使用它

似乎在配置中定义的授权策略必须应用于整个服务-无法将它们应用于选择性操作。这意味着我需要想出另一种机制来选择性地将授权策略应用于特定操作

操作行为没有帮助,因为
ServiceSecurityContext.AuthorizationPolicys
集合是只读的

把我的服务分成两份合同——授权的和未授权的——是很混乱的,而且无论如何也帮不上忙。为了配置单独的行为,我需要单独的服务(不仅仅是由一个服务实现的单独契约),以便每个服务都有一个不同的名称用于配置。分离的服务意味着分离的.svc文件指向这些服务,所以我所有的RESTful URL都会改变,除非我有一些疯狂的URI重写方案。这似乎比实现这一目标所需的工作量要大得多

我开始认为,唯一合理的方法是编写自己的授权策略,对昂贵的授权策略进行包装,并仅在选择操作时调用它。当然,我需要一些方法来识别这些操作,但我会在遇到它时跨越这座桥


我如何有选择地将授权策略应用于服务操作?有没有更简单的方法?

由于没有人回复,我想说没有方法这样做,所以我可以标记为已接受。我最终完全按照我说的做了——编写了一个包装器授权策略,它根据一些配置有选择地调用昂贵的授权策略