我有WCF
- 我希望使用Delphi
- 客户端访问的服务。现在我的问题是,我必须使用Windows Authentication
并且不知道在哪里告诉Delphi
- 客户自动使用这些凭据。
它只适用于我在与WCF相同的机器上启动客户端(当然)。否则我得到ESOAPHTTPException
错误401(未经授权)。
在C#
- 客户端,它只是一些配置,如
<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;
答案 0 :(得分:0)
如果客户端和服务器位于不同的计算机上,则客户端必须使用有效的域帐户。
请参阅我对How can I use NTLM authentication in a Delphi SOAP Web Service client?的回答:
在THTTPRio的WebNode子组件的用户名属性中 组件,使用域名后跟反斜杠和用户 名。
请注意,使用普通网络浏览器(Chrome,Firefox,...)从其他计算机(在同一网络中)访问Web Service WSDL地址时,应显示一个登录表单,其中表单中的凭据为domain \ user和密码可以输入。