何时/为什么我在WCF服务中使用多个端点VS单个端点?

时间:2011-05-17 16:05:12

标签: wcf security endpoints

在WCF服务中使用单端点或多端点有什么区别?有时候你会想要使用一个而不是另一个吗?

在我的情况下,我们有两个端点:一个用于授权,一个用于数据。通过Auth端点登录后,您可以访问数据端点并访问所有数据。

是否有理由将数据端点拆分为多个端点?数据端点契约当前由多个.cs类组成,这些类都是一个大的部分类的一部分。

2 个答案:

答案 0 :(得分:8)

如果您的服务面向不同的潜在客户群,那么多个端点可能非常有意义:

  • 使用net.tcp绑定Windows凭据的一个端点可用于来自防火墙后面的公司内部客户端,这些客户端是根据您的公司Active Directory进行身份验证的;这种绑定速度快,性能高,使用AD集成设置安全性相对轻松

  • 第二个端点可能正在使用wsHttpBinding并强制执行传输级安全性(https://) - 因此某些客户端可能会在安全链接上调用您的服务

  • 第三个端点可能使用不安全basicHttpBinding来实现最大向后兼容性 - 例如各种各样的客户端(也有许多非.NET客户端,如Ruby,PHP,其他脚本语言等)可以连接到这个端点;也许,您的不安全端点不会被允许调用所有方法,或者它可能有其他限制(例如,只有在容量允许的情况下才被视为最后优先级调用)

  • 第四个端点可能会以一种宁静的方式在webHttpBinding上展示您的同一服务,以便更多设备(如电话等)可以连接到它

拥有和公开多个端点可以使您的服务更容易访问,并且您可以从每个方案的“最佳”绑定中受益。

答案 1 :(得分:0)

您可以按功能使用不同的端点进行逻辑分组,或者可以在每个端点的绑定中应用不同级别的安全性。