Pas*_*cal 8 delphi authentication wcf soapheader
我已经开发了一个UserNamePasswordValidator带有basicHttpBinding使用HTTPS 的自定义的WCF服务.它适用于.Net客户端,使用ClientCredentials发送用于身份验证的用户名和密码.
但是,我需要从Delphi XE客户端调用它.如何使用Delphi发送等效的.Net ClientCredentials?那可能吗?如果是的话,怎么样?如果不是,还有其他选择吗?
TKS
编辑
下面是.Net中的客户端代码:
EndpointAddress oTransac = new EndpointAddress(GetAddress());
using (WebServiceClient oClient = new WebServiceClient ("httpbasic", oTransac))
{
oClient.ClientCredentials.UserName.UserName = "username";
oClient.ClientCredentials.UserName.Password = "password";
oClient.DoStuff();
}
Run Code Online (Sandbox Code Playgroud)
编辑
我一直在做一些研究,并且我已经能够使用SOAP Hearders在Delphi和旧的asmx Web服务之间进行身份验证.我在下面找到了这篇文章.我是否能够[WebMethod] [System.Web.Services.Protocols.SoapHeader("SoapHeader")]使用文章的技术实现旧的相同行为?
编辑BOUNTY
获得标记为赏金的正确答案,我希望能够UserNamePasswordValidator在服务器端使用WCF服务从Delphi调用Web服务.
首先,basicHttpBinding是通过HTTP(而不是HTTPS)
http://msdn.microsoft.com/en-us/library/ms731361.aspx
从Delphi使用WFC服务通常是通过从服务生成WSDL来完成的
http://social.msdn.microsoft.com/Forums/en/wcf/thread/fc2c5074-1116-4f92-a972-01bb3a142535
WCF:如何在没有WSDL的情况下生成单个WSDL文档:import?
并通过将该WSDL导入Delphi项目来生成Delphi代理类.
>wsdlimport.exe service.wsdl
Run Code Online (Sandbox Code Playgroud)
然后在Delphi项目中使用生成的Delphi单元
http://www.drbob42.com/examines/examinB9.htm
http://edn.embarcadero.com/article/36962
您发送到服务调用的参数(用户名,密码,ClientCredientials等)将在生成的Delphi单元中定义 - 只要您可以连接到服务,应该没有问题.
| 归档时间: |
|
| 查看次数: |
2881 次 |
| 最近记录: |