在C#中使用Web服务:基本身份验证和动态端点URL

时间:2011-12-15 09:31:52

标签: c# web-services authentication

我正在尝试从c#调用soap web服务。使用静态URL并且没有身份验证一切正常。我使用wsdl和csc生成一个dll,并使用Web引用。这一点很简单。

对于我见过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/但这看起来很复杂,我希望有一种更简单的方法来实现基本身份验证。

1 个答案:

答案 0 :(得分:3)

要为您的网络请求实施基本身份验证,您必须使用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.

对于动态网址,您提到的文章应该有效。