首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WCF和wsHttpBinding -消息加密

WCF和wsHttpBinding -消息加密
EN

Stack Overflow用户
提问于 2013-07-15 04:07:44
回答 2查看 2K关注 0票数 1

我正在做一个使用WCF实现的客户端-服务器项目。客户端部署在不同的机器上,并通过互联网与服务进行通信。我对WCF比较陌生,在为我的网络服务选择适当的绑定时有点困惑。客户端需要被授权才能执行操作,但是,由于各种原因,我正在实现自己的身份验证算法并尝试避免Windows身份验证,但我仍然需要确保通道中传输的消息是加密的。

现在我使用的是安全模式设置为MessagewsHttpBinding。完整配置如下所示:

我已经将IIS中的身份验证类型设置为Anonymous Authentication,以确保请求通过,并且预期服务调用会失败,因为我绑定中的MessageClientCredentialType被显式设置为Windows。但是,当我运行代码时,服务被成功调用并返回期望值。我有一种感觉,我漏掉了什么--为什么这个呼叫是授权的?是否可以确保即使身份验证类型设置为Anonymous,消息仍然是加密的?任何帮助都是非常感谢的。

编辑

为了澄清这一点,我使用部署到不同域上的网络外部计算机的客户端测试了该服务。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-15 14:05:34

这篇MSDN文章总结了许多与WCF相关的安全问题

http://msdn.microsoft.com/en-us/library/ms733836.aspx

对于您的特定情况,negotiateServiceCredential="true"意味着您可以简化对客户端的证书分发,以便对消息进行加密。

此选项仅适用于windows客户端,并且存在一些性能问题。阅读更多在这里http://msdn.microsoft.com/en-us/library/ff647344.aspx搜索主题“简化证书分发”在此页。

票数 0
EN

Stack Overflow用户

发布于 2013-07-15 19:20:33

您使用哪个帐户调用该服务?在IIS中允许匿名允许您的请求传递到服务,并且如果您的调用方具有windows能够识别的凭据(Active directory/NTLM),则服务应该进行身份验证。在您的情况下,我认为您是在自己的环境中测试它,以便服务做出响应。一旦你在互联网上部署了它,我怀疑你的服务是否会允许任何域外的人,如果你保持客户端凭证类型为windows的话。检查这些链接以保护互联网上的服务- http://msdn.microsoft.com/en-us/library/ms734769.aspx http://msdn.microsoft.com/en-us/library/ms732391.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17643246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档