How to Authenticate and Authorize every WCF call?

ira*_*hil 8 wpf wcf wcf-security

I have WPF client consuming WCF service hosted in IIS. For authentication I am thinking of either certificate or user name authentication. Client calls couple of methods in WCF and passes some message.

  1. For every call that comes to WCF, I want to authenticate the user.
  2. 要在db中放置消息,我必须知道谁是调用者,他们的用户名是什么以及关于用户的其他一些属性.如何在每次通话时传递这些信息[可能是一个小对象]?

mar*_*c_s 10

这是建议的默认行为 - 每次调用WCF服务都会获得一个新的服务实例,并且每个调用都经过身份验证和授权.

只是确保不要在WCF中启用会话模式之类的东西,并且不要沿着WCF单例的路径前进.

只需保留一个常规的,标准的"每次呼叫"WCF服务 - 没有问题.

如果你是一个公司的局域网上,你也可以考虑使用Windows凭据进行身份验证(这是默认的wsHttpBindingnetTcpBinding).

有一个非常广泛的WCF安全指南,其中包含大量示例和如何设置WCF安全性的某些场景的操作指南.

我还建议您查看WCF安全基础知识,了解WCF的简介及其安全机制.

更为高级的是声明WCF安全性的想法,其中Juval Lowy引入了五种安全方案(这是非常值得阅读的!)并将它们封装到应用于服务合同的安全属性中.