2010-07-18 2 views
2

모든 코드가 동일한 웹 서비스 인터페이스를 제공하는 서버 목록을 가지고 있습니다.웹 서비스 URI의 동적 바인딩

https://server1/service.asmx 
https://server2/service.asmx 
https://server3/service.asmx 

내 코드는 서버의 목록을 얻을 그들 모두에 같은 함수를 호출 할 필요가있다.

이 서비스에 대한 웹 참조를 추가하고 "동적"URL 동작을 사용합니다. 이것은 서버 프록시 객체의 인스턴스를 만들고, 런타임에 URI 속성을 설정 한 다음 웹 메소드를 호출하게합니다.

하지만 VS에서 생성 된 코드는이 응용 프로그램의 경우가 아닌 응용 프로그램의 구성 파일에서 URI가 온다고 가정합니다.

public SharpEyeWebService() { 
     this.Url = global::Company.DotNet.MyProject.Properties.Settings.Default.MyWebService; 
     if ((this.IsLocalFileSystemWebService(this.Url) == true)) { 
      this.UseDefaultCredentials = true; 
      this.useDefaultCredentialsSetExplicitly = false; 
     } 
     else { 
      this.useDefaultCredentialsSetExplicitly = true; 
     } 
    } 

생성자가 사용하는 기본 URL을 무시하고 위에서 설명한 접근 방식을 사용하는 것이 안전합니까?

답변

3

항상으로 설정하면 Url으로 설정되므로 안전합니다. "다이내믹 한"사용자가 설명하는 것은 기본값 인Url에만 영향을 미칩니다.

실제로이 기능을 제공하는 경우에는 문제가됩니다.

여기서 어색한 점은 발견 한 내용을 기준으로 UseDefaultCredentials을 설정한다는 것입니다. 따라서 값을 알 수 있도록 수동으로 설정할 가치가 있습니다.

+0

동일한 자격 증명 구성이 URL의 속성 설정자에 설정되어있는 것처럼 보입니다. 그래도 괜찮습니다. –