2011-11-17 3 views
1

사용자 이름과 암호를 제공하여 브라우저에서 열리는 wsdl 파일의 URL이 있습니다 .WSDL을 xml 형식으로 가져 오기 위해 그 wsdl에 사용자 이름과 암호를 제공 할 수 있습니까? 참조 용 코드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)); 

}

 public class WebServiceInfo 
     { 
      WebMethodInfoCollection _webMethods = new WebMethodInfoCollection(); 
      Uri _url; 
      static Dictionary<string, WebServiceInfo> _webServiceInfos = 
       new Dictionary<string, WebServiceInfo>(); 

      private WebServiceInfo(Uri url) 
      { 
       if (url == null) 
        throw new ArgumentNullException("url"); 
       _url = url; 
       _webMethods = GetWebServiceDescription(url); 
      } 

      public static WebServiceInfo OpenWsdl(string url) 
      { 
       Uri uri = new Uri(url); 
       return OpenWsdl(uri); 
      } 
     } 

감사

+0

답변은 앱이 어떤 종류의 인증을 수행하는지에 따라 다릅니다. 당신이 말할 수있는 한가지 방법 - 당신은 웹 페이지 안에서 인증을하고 있습니까, 아니면 작은 창을 팝업합니까? 또한 인증을 받으면 요청과 함께 쿠키가 전송됩니까? 당신이 [Fiddler를 실행하는지] 알 수 있습니다 (http://www.fiddler2.com/fiddler2/). –

+0

@Merlyn Morgan-Graham : 콘솔 응용 프로그램에서 인증하고 wsdl xml 형식을 얻고 싶습니다. –

+0

웹 응용 프로그램에 필요한 인증 유형을 알려주지 않습니다. 당신이 모르는 것처럼 들리므로,이 문제를 해결하기가 더 어려워 질 것입니다. fiddler를 사용하여 인증 된 호출 (WSDL을 볼 수있는 호출)과 인증되지 않은 호출 (로그인 프롬프트를 표시하는 호출) 간의 차이점에 대해 알아보십시오. 문자를 사용하여 두 가지 유형의 호출간에 차이점을 확인하십시오. 어쩌면 어떤 종류의 쿠키가 귀하의 요청과 함께 발송됩니다. –

답변

0

[assumingit의 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); 
+0

답장을 보내 주셔서 감사합니다. 그러나 '원격 서버에서 오류를 반환했습니다 : (401) 권한이 없습니다.'와 같은 오류가 표시됩니다. 다음 코드에서 'webRequest.Credentials = new System.Net.NetworkCredential ("abc", "lmn"); System.Net.WebResponse response = webRequest.GetResponse(); ' –

관련 문제