【发布时间】:2016-03-20 02:34:00
【问题描述】:
场景:
我们开发了一个 wcf 网络服务,它链接到我们防火墙/dmz 内的数据库。 Web 服务和客户端应用程序(数据捕获 Web 表单)需要托管在我们面向 Internet 的 Web 服务器上。这是因为它需要由我们的第三方 CMS(托管我们的主网站)托管的 Web 控件访问。
问题:
我们希望确保数据可以尽可能安全地传递,但我们会谨慎对待我们自己和我们的 CMS 提供商之间的共享证书(反之亦然)。我们希望 Web 控件以 https 形式托管,但我读过的所有文档都说这需要证书来进行身份验证。我一直在考虑在客户端和 svc 之间应用额外的自定义安全(自定义绑定、在代码中应用的用户名/密码、通过 IP 地址限制调用)但我想知道是否有其他人遇到过这种情况。
我确信当第三方托管应用程序的 Web 控件时,必须有应用自定义安全性的示例,但到目前为止,我只在网上找到了“它是证书还是什么都没有”的 cmets。非常感谢任何帮助或指导。
目前查看的许多链接示例包括:
我希望应用建议的设置,例如在下面的<wshttpBinding> 和<serviceCredentials> 中,同时添加一个新的“安全”类以包含自定义用户名/密码验证器,但得到“svc...不实现继承的成员...” 错误.
<wsHttpBinding>
<binding name="EndpointBinding">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None"/>
<message clientCredentialType="UserName"/>
</security>
</binding>
</wsHttpBinding>
<serviceCredentials>
<userNameAuthentication
userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="My.WcfSvc.Authentication.Secure,
My.WcfSvc" />
</serviceCredentials>
【问题讨论】: