我希望能够在操作级别而不是服务级别上保护我的WCF服务。
因此,某些方法受到保护而其他方法则不受保护我知道有一个名为PrincipalPermission
的属性,但这适用于Windows
我希望WCF Soap存在一些东西,就像它在这个contrib项目中为WCF Rest做的那样。 WcfRestContrib
这个额外项目允许使用自定义用户名和密码验证器,并且只允许通过使用属性修饰方法来保护某些方法
这可以用WCF(肥皂)吗?
提前致谢
答案 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它们是否被授权。