.net - 关于第 3 方集成商的 wcf 服务的问题

标签 .net wcf web-services authentication ssl

有些公司有兴趣将我们的软件与他们的软件集成。我们开始研究为他们提供网络服务以供他们通过互联网消费。我们将使用 WCF 构建 Web 服务。我们不能保证每个集成商都会使用 WCF 或 .NET,因此互操作性很重要。

我们希望在每个第 3 方集成商使用用户名和密码调用我们的服务操作时对其进行身份验证。或者,我读到可以使用证书实现客户端身份验证,但这看起来很复杂。

我们计划在 IIS 中托管该服务。

WCF 中可用的选项太多了。基于以上内容,建议使用什么配置(绑定(bind)/安全)?

是否可以使用IIS做托管,basicHttpBinding,membership provider做认证,SSL做加密?这些东西能协同工作吗?

最佳答案

一定要使用 BasicHttpBinding 和 HTTPS。 BasiHttpBinding 提供最简单的 SOAP 互操作服务,HTTPS 将确保客户端和您的服务之间的传输安全。

要对用户进行身份验证,您可以使用 BasicHttpBindingTransportWithMessageCredential 安全模式。此安全配置需要消息中的标准化 SOAP header (用户名 token 配置文件)。 header (在 WCF 的情况下)包含纯文本形式的用户名和密码。在这种情况下,纯文本不是问题,因为整个传输都由 SSL (HTTPS) 保护。即使您的客户不是 WCF 并且没有任何特殊的 SOAP 堆栈,添加此 header 也应该很容易。此外,直接使用此身份验证类型允许您使用成员身份提供商验证用户名或编写自定义密码验证器。

关于.net - 关于第 3 方集成商的 wcf 服务的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6358789/

相关文章:

c# - 安全地验证客户端到服务器

c++ - 从 C++ 运行 .net 应用程序

c# - 当 BodyStyle = WebMessageBodyStyle.Wrapped 时从 C# 调用 Rest WCF 服务操作

c# - 如何研究 .NET 中的非托管内存泄漏?

Java 网络服务测试

c# - 将文件重定向到流 C#

.net - WCF 连接被错误中止/现有连接被远程主机强制关闭

wcf - 添加用于 WCF 服务和 Windows Phone 7 应用程序的枚举类型

wcf - XML 注释未出现在 WCF 服务中

java - 使用 wsdl2java 和 Spring 的 Web 服务客户端