我有一个WCF
服务,我想通过一个Delphi
-Client访问。现在我的问题是,我必须使用Windows Authentication
,并且不知道在哪里告诉Delphi
-客户端自动使用这些凭据。
仅当我在与WCF相同的计算机上启动客户端时,它才起作用(当然)。否则,我会收到错误401(未经授权)的ESOAPHTTPException
。
在C#
-Client中,只是一些配置,例如
<transport clientCredentialType="Windows" />
但是,如何配置Delphi-Client使用Windows凭据?
编辑:
我在Delphi中所做的用于测试其是否工作的所有操作是导入
wsdl
并执行以下操作:procedure TForm1.Button1Click(Sender: TObject);
var
trans: IService;
begin
trans := Service_Transfer.GetIService();
Label1.Caption := trans.GetPath;
end;
最佳答案
如果客户端和服务器位于不同的计算机上,则客户端必须使用有效的域帐户。
查看我对How can I use NTLM authentication in a Delphi SOAP Web Service client?的回答:
在THTTPRio的WebNode子组件的用户名属性中
组件,请在域名后加上反斜杠和用户
名称。
请注意,使用普通的Web浏览器(Chrome,Firefox等)从另一台计算机(在同一网络中)访问同一网络中的另一台计算机上的Web服务WSDL地址应显示一个登录表单,其中域\用户和密码形式的凭据可以被输入。
关于wcf - 使用Delphi Client和Windows身份验证访问WCF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28498359/