2009-07-29 9 views
0

웹 서비스를 처음 사용합니다. 마지막으로 SOAP을 처리 할 때 요청을 보내고 내가 만든 응답 객체/클래스별로 응답을받은 래퍼 클래스를 만들었습니다. 그래서 특정 API 요청을 보내는 객체와 마찬가지로 객체로 응답을 보유하기위한 객체 세트를 가지고있어서 제 3 자 API를 활용할 수있었습니다.웹 서비스 참조로 API 호출에 인증 전달

누군가 내게 와서 wsdl과 웹 서비스를 사용하지 않는 이유를 설명했습니다. 자, 오늘은 "Service Reference"를 만들었습니다. 나는 이것이 "프록시 클래스"라고 불리는 것을 보았습니다. 이 인스턴스를 인스턴스화 한 다음 wsdl의 모든 메소드에 액세스 할 수 있습니다.

그러나 이것은 인증 질문으로 나를 남겨 둡니다. 내가 직접 내 수업을 만들었을 때, 나는 내가 사용하고 있던 제 3 자 API가 요구하는 Http 요청과 함께 전송 된 서명, 사용자 이름, 암호와 같은 것들을 액세스하도록 설정된 속성을 공개하는 클래스를 가졌다. API 호출하기.

그러나 서비스 참조를 사용하면 사용자 정의 클래스에서했던 것처럼이 정보를 전달할 수 있습니까? 예를 들어 저는 PayPal API로 작업 할 것입니다. 서명과 사용자 명과 암호와 같은 몇 가지 정보를 보내야합니다.

// Determins if API call needs to use a session based URI 
       string requestURI = UseAuthURI == true ? _requestURIAuthBased + aSessionID : _requestURI; 

       byte[] data = XmlUtil.DocumentToBytes(doc); 

       // Create the atual Request instance 
       HttpWebRequest request = CreateWebRequest(requestURI, data.Length); 

각 메소드 호출시 웹 서비스 참조를 사용할 때 어떻게 사용자 이름, 비밀번호, 서명 등을 전달합니까? 메서드의 param으로 지정하는 것만 큼 간단하거나 프록시 클래스 개체의 .Credentials 및 .URL 메서드를 사용합니까? 그것은 나에게 보인다 자격 증명은 Windows 자격 증명을 의미하지만 틀릴 수 있습니다. 그것으로 제한 되나요? 아니면 각 메소드 호출/API 요청에서 PayPal이 기대하는 필수 헤더 값을 지정할 수 있습니까?

+0

이것을 WCF로 바꾸겠습니까? –

+0

아니요. 우리는 WCF를 사용하지 않습니다. – PositiveGuy

+0

그리고 저는 이것을 열어 두었다는 사실을 몰랐습니다. 여기에 대답이 ... 당신에게서! http://stackoverflow.com/questions/1202074/using-web-service-or-web-service-reference – PositiveGuy

답변