我有一个使用IIS托管的WCF服务的WPF客户端。对于身份验证,我考虑使用证书或用户名进行身份验证。客户端调用WCF中的几个方法并传递一些消息。
- 对于每个到达WCF的调用,我希望验证用户身份。
- 为了将消息放入数据库中,我必须知道调用者是谁,他们的用户名以及关于用户的其他一些属性。如何在每个调用中传递这些信息[可能是一个小对象]?
我有一个使用IIS托管的WCF服务的WPF客户端。对于身份验证,我考虑使用证书或用户名进行身份验证。客户端调用WCF中的几个方法并传递一些消息。
这是推荐的默认行为-每次调用WCF服务都会获得一个新的服务实例,并且每个调用都经过身份验证和授权。
只需确保不启用WCF中的会话模式,也不要使用WCF单例。
只需保持常规的标准“每次调用”WCF服务-没有问题。
如果您在企业局域网上,还可以考虑使用Windows凭据进行身份验证(这是wsHttpBinding
和netTcpBinding
的默认设置)。
有一个非常详尽的 WCF安全指南,其中包含大量有关如何设置某些WCF安全场景的示例和操作指南。
我还建议您查看 WCF安全基础,以便对WCF及其安全机制有一个很好的介绍。
更加高级的概念是声明 WCF 安全性,Juval Lowy 在其中介绍了五种安全场景(值得一读!),并将它们封装到可应用于您的服务协定的安全性属性中。