如何验证和授权每个WCF呼叫?

时间:2011-02-17 17:10:53

标签: wpf wcf wcf-security

我有WPF客户端正在使用IIS中托管的WCF服务。对于身份验证,我正在考虑证书或用户名身份验证。客户端在WCF中调用几个方法并传递一些消息。

  1. 对于每次来到WCF的电话,我 想要验证用户身份。
  2. 要在db中放置消息,我必须知道谁是调用者,他们的用户名是什么以及关于用户的其他一些属性。如何在每次通话时传递这些信息[可能是一个小对象]?

1 个答案:

答案 0 :(得分:10)

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

请确保不要在WCF中启用会话模式之类的内容,也不要沿着WCF单例的路径启用。

只需保留常规的标准“每次通话”WCF服务 - 没有问题。

如果您在公司局域网上,您还可以考虑使用Windows凭据进行身份验证(这是wsHttpBindingnetTcpBinding的默认设置。)

有一个非常广泛的WCF Security Guide,它有大量的样本和操作指南,介绍如何设置某些WCF安全方案。

我还建议您查看The Fundamentals of WCF Security,了解WCF及其安全机制的详细介绍。

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