2008-10-24 6 views
2

다음은이 question입니다. 내 클라이언트가 더 복잡한 설치하므로 x509 인증서 메서드를 사용하여 피하기 위해 노력하고있어. basicHttpBinding이 유일한 옵션이 아닌 경우 다른 바인딩 메서드의 샘플은 어디에 있습니까?basicHttpBinding은 .Net 2.0 클라이언트를 WCF 서비스에 연결할 수있는 유일한 옵션입니까?

내 클라이언트가 .Net 2.0에 있지만 3.0까지 나오지 않아 System.ServiceModel 네임 스페이스에 액세스 할 수 없습니다.

업데이트 : 명확하게하기 위해, 클라이언트 : 닷넷 2.0, 웹 서비스 : .net3.5/WCF는

답변

3

문제가 불일치가 아닙니다. 닷넷 2.0 서비스와 WCF 및 다양한 바인딩 사이 - 그들은 (당신의 경우에는 문제가되지 않아야하는 몇 가지 주목할만한 예외를 제외하고) 매우 호환 가능한 프로토콜이다.

WSE 3.0 (2.0 .Net 프레임 워크에서 실행)은 특히 근접합니다. 이것을 basicHttpBinding 또는 wsHttpBinding과 함께 사용하고 몇 가지 조정할 수 있습니다. '지미'Skowronski의 문서 here과 MSDN 기사 here은 대부분의 기본 사항을 다루고 있습니다.

당신은 또한 당신이 (WCF 및 기본 인증을 사용하여 보안 전송에 대한 요구처럼)

가 내가 이해 귀하의 문제가 WSE와 WCF 사이의 몇 가지 호환성 문제입니다

사이드 스텝 드릴 것입니다 그 사용자 지정 바인딩을 코딩 할 수 있습니다

인증 관리 방법 - 이전 질문에서 Windows 인증을 배제했습니다. Kerberos는 WCF 또는 WSE에서 모두 작동하지만 훨씬 더 복잡합니다.

기본 인증을 사용하는 것으로 제한되어 있으므로 (알고있는 한 내가 아는 한) 각 클라이언트가 사용자 이름이나 암호를 제공하므로 사용자의 필요에 따라 모든 클라이언트가 동일 할 수 있습니다. 또는 인증서 기반 인증.

기본 인증을 사용하는 경우 Toran의 대답은 좋은 시작 프로그램입니다.

아마도 좋은 접근 방식은 .Net 2.0 (및 WSE *) 측면의 요구 사항을 먼저 살펴 보는 것입니다. 클라이언트 배포에 적합한 인증 메커니즘을 설정 한 다음이를 받아들이는 방법을 연구하십시오. WCF와의 인증.

WCF는

보낼 수 있습니다 거의 아무것도 WSE 3.0을 받아 (나는 주소 사양의 버전 인 내 머리 위로 떨어져 생각할 수있는 유일한 예외로, 일부 약간 엄격한 보안 요구 사항) 수
1

당신은 SSL + 사용자 이름/basicHttp와 비밀번호를 요구할 수 있습니다.

먼저 클라이언트가 .NET 2.0에서 WCF 서비스를 인증하는 데 사용할 내용을 아래에 나타냅니다.

Dim client As WebServiceClient = New WebServiceClient("basicHttpWebService") 
client.ClientCredentials.UserName.UserName = "username" 
client.ClientCredentials.UserName.Password = "password" 

다음, SSL + 멤버 자격 공급자 자격 증명

 <bindings> 
      <basicHttpBinding> 
       <binding name="basicHttp"> 
        <security mode="TransportWithMessageCredential"> 
         <transport/> 
         <message clientCredentialType="UserName"/> 
        </security> 
       </binding> 
      </basicHttpBinding> 
     </bindings> 
     <behaviors> 
      <serviceBehaviors> 
       <behavior name="NorthwindBehavior"> 
        <serviceMetadata httpGetEnabled="true"/> 
        <serviceAuthorization principalPermissionMode="UseAspNetRoles"/> 
        <serviceCredentials> 
         <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"/> 
        </serviceCredentials> 
       </behavior> 
      </serviceBehaviors> 
     </behaviors> 

내가 그 클라이언트 응용 프로그램의 첫 번째 섹션을 사용하는 것입니다 확실하지 않다 유일한을 요구하는 당신의 WCF 서비스에 대한 샘플 설정 당신은 일반적으로 오른쪽 클릭하고 ASMX 대신 "웹 참조 추가"대신 "서비스 참조 추가"WCF/WPF 확장 CTP가 필요할 수 있습니다 - 만약 그렇다면 VS2005에 대한이 확장은 .NET 3.0을 설치해야합니다. 하지만 간단한 "웹 참조 추가"를 사용하면 여전히 사용자 이름/암호를 입력 할 수 있어야합니다 ...이 VB/C#가 어떻게 생겼는지 모르겠습니다 ...

관련 문제