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

4
我正在尝试从 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/ 但这看起来非常复杂,我希望有更简单的方法实现基本身份验证。

你试过在你提到的博客上给出的示例吗? - Maheep
1个回答

3

要为您的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的文章,你提到的,应该可以使用。

谢谢您的回复。请问在使用Web引用时,您能告诉我在哪里找到WebRequest吗?抱歉,我是新手。 - user1099480

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接