2010-04-10 2 views
17

WCF 서비스 인증을 위해 멤버 자격 공급자에서 동일한 사용자 이름과 암호를 사용하는 방법이 있습니까? 그렇다면 어떤 바인딩이이를 지원합니까? 현재 서비스를 호출하는 사용자로부터 프로파일 변수를 추출해야합니다. 어떤 도움을 주셔서 감사합니다.WCF 서비스에서 ASP.NET 멤버 자격 공급자 authentincation 사용

답변

21

기본적으로 메시지 보안을위한 클라이언트 자격 증명으로 사용자 이름/암호를 허용하는 모든 바인딩은 ASP.NET 멤버 자격 공급자를 사용하도록 구성 할 수 있습니다.

<serviceBehaviors> 
    <behavior name="AspNetMembership"> 
    <serviceCredentials> 
     <userNameAuthentication 
      userNamePasswordValidationMode ="MembershipProvider" 
      membershipProviderName ="SqlMembershipProvider"/> 
    </serviceCredentials> 
    </behavior> 
</serviceBehaviors> 
-

체크 아웃 how to use the ASP.NET Membership provider in WCF에이 MSDN 워드 프로세서 당신은 "사용자 이름"

<bindings> 
    <wsHttpBinding> 
    <!-- Set up a binding that uses UserName as the client credential type --> 
    <binding name="MembershipBinding"> 
     <security mode ="Message"> 
     <message clientCredentialType ="UserName"/> 
     </security> 
    </binding> 
    </wsHttpBinding> 
</bindings> 

및 사용자 인증을 위해 ASP.NET 회원을 사용할 수있는 서비스 당신의 유형의 클라이언트 자격 증명을 바인딩을 구성해야

물론 서비스를 구성 할 때 서비스 동작을 적용해야합니다!

<services> 
    <service name="YourService" behaviorConfiguration="AspNetMembership"> 
    .... 
    </service> 
</services> 

사용자 이름 클라이언트 자격 증명 유형은 BasicHttpBinding,있는 wsHttpBinding, netTcpBinding에 의해 지원됩니다 - 그래서 거의 모든 일반적인 용의자.

+0

https를 사용하지 않고 basicHttpBinding에서 username을 사용할 수 있습니까? 또한, 내가 wsHttpBinding을 사용한다면, https는 필수입니까? –

+2

username/pwd를 사용하는 경우 WCF는 보안 연결을 원하므로 https를 사용해야합니다 (메시지 기반 암호화를 사용할 수 없으므로). 아니요. 메시지를 암호화 할 수있는 한 https없이 wsHttpBinding을 절대적으로 사용할 수 있습니다. 인증서를 사용할 수 있음 –

+0

도움을 주셔서 감사합니다. @marc_s –

관련 문제