WCF(SOAP):使用自定义UserName验证程序保护单个操作 - 类似于WcfRestContrib提供的但是对于soap?

时间:2011-01-22 03:46:51

标签: wcf soap wcf-security

我希望能够在操作级别而不是服务级别上保护我的WCF服务。

因此,某些方法受到保护而其他方法则不受保护我知道有一个名为PrincipalPermission的属性,但这适用于Windows

我希望WCF Soap存在一些东西,就像它在这个contrib项目中为WCF Rest做的那样。 WcfRestContrib

这个额外项目允许使用自定义用户名和密码验证器,并且只允许通过使用属性修饰方法来保护某些方法

这可以用WCF(肥皂)吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

是的,可以在WCF中使用SOAP进行操作级别授权检查,但是您需要进行基于声明的授权(据我所知)。这就是我的团队为我们的产品所做的事情。

WCF中的挂钩点是实现自定义ServiceAuthorizationManger

ServiceAuthorizationManager.CheckAccessCore Method

How to: Create a Custom Authorization Manager for a Service

并将其插入您的服务行为:

<behaviors>
  <serviceBehaviors>
    <behavior name="ServiceBehavior">
      <serviceAuthorization serviceAuthorizationManagerType="MyServiceAuthorizationManager" />
    </behavior>
  </serviceBehaviors>

当您实施授权管理器时,覆盖CheckAccessCore,然后只返回true / false它们是否被授权。