用c#消费Web服务:基本身份验证和动态端点url

本文关键字:身份验证 动态 端点 url 消费 Web 服务 | 更新日期: 2023-09-27 18:17:51

我正在尝试从c#调用soap web服务。使用静态URL而不需要身份验证,一切都工作得很好。我使用wsdl和csc来生成dll,还使用web引用。这是比较容易的部分。

对于动态URL,我看到了http://www.codeproject.com/KB/XML/wsdldynamicurl.aspx,但这是从2005年开始的,我不知道这是否过时了。使用"正常"引用是正确的吗?

我的Web服务使用基本身份验证,但我不知道如何给出用户/密码。

我已经看过http://benpowell.org/supporting-the-ws-i-basic-profile-password-digest-in-a-wcf-client-proxy/,但这看起来真的很复杂,我希望有一种更简单的方法来实现基本的身份验证。

用c#消费Web服务:基本身份验证和动态端点url

要为您的web请求实现基本身份验证,您必须为您的请求使用NetworkCredential。

NetworkCredential creds = new NetworkCredential(user,password);
WebRequest req = WebRequest.Create(Url);
req.Credentials = creds;

如果您正在使用Web Reference访问Web服务;当您创建代理类的对象时,只需为其分配凭据。

NetworkCredential creds = new NetworkCredential(user,password);
proxy.Credentials = creds ;
//call your web methods here.

对于动态URL,您提到的文章应该可以工作。