我建设需要是各种潜在的平台,包括一些较旧的ASP和ASP.NET的应用程序访问web服务。 经过一番研究,我就既具有REST(的WebHttpBinding)和SOAP(的wsHttpBinding)端点的WCF服务解决(这样一来,我可以支持广泛的平台,仍然使.NET程序员高兴)。
为了安全起见,我使用SSL和HTTP基本认证对我自己的用户名/密码的数据库。 所以我写了一个HttpModule来处理用户名和密码,并检查SSL。 现在,剩下的设置是可以正常使用的,但我在使用SOAP端点的问题。 不管我用什么设置,SOAP客户端从不向我发送WWW-Authorization头,我可以用它来进行身份验证。 我假设设置类似<message clientCredentialType="UserName" />
应该告诉WCF,我期待一个Authorization头,并且该信息会由Visual Studio(或其他客户端)时,它会创建一个Web引用被拾起。 也许我只是极其天真。
因此,要总结的问题是:有没有什么办法,我可以告诉WCF给我WWW-Authorization头(即HTTP基本报头)与SOAP消息一起?