.net 如何发送登录参数以获取wsdl

.net 如何发送登录参数以获取wsdl,.net,web-services,wsdl,.net,Web Services,Wsdl,我有我的wsdl文件的url,该文件通过提供用户名和密码在浏览器中打开。我如何实际地向该wsdl提供用户名和密码,以获得xml格式的wsdl。以下是供参考的代码 class Program { static void Main(string[] args) { WebServiceInfo webServiceInfo = WebServiceInfo.OpenWsdl("https://xyz.com/partne

我有我的wsdl文件的url,该文件通过提供用户名和密码在浏览器中打开。我如何实际地向该wsdl提供用户名和密码,以获得xml格式的wsdl。以下是供参考的代码

    class Program    {
    static void Main(string[] args)
    {
                  WebServiceInfo webServiceInfo =        WebServiceInfo.OpenWsdl("https://xyz.com/partners?wsdl");

        Console.WriteLine(string.Format("WebService: {0}", webServiceInfo.Url));
}

公共类WebServiceInfo
{
WebMethodInfoCollection_webMethods=新的WebMethodInfoCollection();
Uri\uurl;
静态字典\u webServiceInfos=
新字典();
私有WebServiceInfo(Uri url)
{
如果(url==null)
抛出新的ArgumentNullException(“url”);
_url=url;
_webMethods=GetWebServiceDescription(url);
}
公共静态WebServiceInfo OpenWsdl(字符串url)
{
Uri=新的Uri(url);
返回OpenWsdl(uri);
}
}

谢谢

[我们正在谈论的Assuminit的Windows身份验证…]

System.Net.Credentials为此提供了一些功能,目前无法对其进行测试,但这应该接近您需要执行的操作:

//request object provided for reference purposes
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://url");
//add the following
request.Credentials = new System.Net.NetworkCredential(userName, password, domain);

答案取决于应用程序正在执行的身份验证类型。有一种方法可以告诉你——你是在网页中进行身份验证,还是会弹出一个小窗口?此外,一旦您通过身份验证,是否有任何cookie随您的请求一起发送?您可以告诉我您是否需要。@Merlyn Morgan Graham:我想在控制台应用程序中对其进行身份验证,并获取wsdl的xml格式,该格式不会告诉我web应用程序需要什么类型的身份验证。听起来你好像不知道,这会使这个问题更难解决。使用fiddler并了解经过身份验证的调用(让您看到WSDL的调用)和未经身份验证的调用(显示登录提示的调用)之间的区别。对它们进行文本区分,看看这两种调用之间有什么不同。可能有某种类型的cookie随您的请求一起发送。感谢您的回复,但它给我的错误类似于“远程服务器返回了一个错误:(401)未经授权”。在以下代码中“webRequest.Credentials=new System.Net.NetworkCredential”(“abc”,“lmn”);System.Net.WebResponse response=webRequest.GetResponse();'
//request object provided for reference purposes
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://url");
//add the following
request.Credentials = new System.Net.NetworkCredential(userName, password, domain);