방법: WCF 역할 서비스 활성화

Visual Studio 2010

업데이트: 2007년 11월

이 항목에서는 웹 서버에서 ASP.NET 역할 서비스를 구성하여 WCF(Windows Communication Foundation)를 사용하는 클라이언트에 이를 사용하는 방법을 보여 줍니다.

Bb398911.alert_note(ko-kr,VS.100).gif참고:

역할 이름을 악의적인 사용자가 사용하여 중요한 데이터가 노출될 수 있거나 역할 이름이 영구 쿠키에 저장되는 경우에는 HTTPS 프로토콜을 사용하여 SSL(Secure Sockets Layer)을 통해 역할 서비스에 액세스하십시오. SSL을 설정하는 방법에 대한 자세한 내용은 Microsoft 웹 사이트에서 Configuring Secure Sockets Layer (IIS 6.0 Operations Guide)Configuring Secure Sockets Layer in IIS 7.0을 참조하십시오.

ASP.NET 역할 서비스를 WCF 서비스로 구성하려면

  1. ASP.NET 웹 응용 프로그램이 없는 경우 하나를 만듭니다.

  2. 웹 응용 프로그램에서 폼 인증을 활성화합니다. 자세한 내용은 멤버 자격을 사용하도록 ASP.NET 응용 프로그램 구성을 참조하십시오.

  3. 웹 응용 프로그램에서 역할을 활성화합니다. 자세한 내용은 역할 관리 이해를 참조하십시오.

  4. 사용자에게 웹 응용 프로그램에 로그인할 수 있는 방법을 제공합니다.

    또한 WCF 역할 서비스를 통해 역할을 가져오는 경우 WCF 인증 서비스를 통해 사용자가 로그인할 수 있습니다. WCF 인증 서비스 설정 방법에 대한 자세한 내용은 방법: WCF 인증 서비스 활성화를 참조하십시오.

  5. RoleService 클래스를 참조하는 다음 지시문이 있는 서비스 파일(.svc)을 웹 사이트에 추가합니다.

    <%@ ServiceHost 
      Language="VB"
      Service="System.Web.ApplicationServices.RoleService" 
      Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory" %>
    <%@ ServiceHost 
      Language="C#"
      Service="System.Web.ApplicationServices.RoleService" 
      Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory" %>
    
  6. .svc 파일을 저장한 다음 닫습니다.

  7. Web.config 파일에서 다음과 같이 설정을 구성하여 서비스를 구성하고 SSL을 요청합니다.

    • roleService 요소에서 역할 서비스를 활성화합니다.

    • services 요소에 끝점 계약을 정의하고 behaviors 요소에 서비스 동작을 정의합니다. 일부 프록시 생성 도구에서 예외가 발생하지 않도록 끝점 계약에 bindingNamespace 속성을 포함합니다. WCF 끝점에 대한 자세한 내용은 Windows Communication Foundation Endpoints를 참조하십시오.

    • ASP.NET 호환성을 위해 serviceHostingEnvironment 요소를 구성합니다. WCF 서비스를 호스팅하는 방법에 대한 자세한 내용은 WCF Services and ASP.NET을 참조하십시오.

    • SSL을 필요로 하는 bindings 요소에 바인딩을 만듭니다. WCF의 전송 보안에 대한 자세한 내용은 Transport Security를 참조하십시오.

    다음 예제에서는 이전 목록에서 설명한 구성 설정을 보여 주는 Web.config 파일의 system.serviceModel 요소를 보여 줍니다.

    <system.web.extensions>
      <scripting>
        <webServices>
          <roleService enabled="true"/>
        </webServices>
      </scripting>
    </system.web.extensions>
    <system.serviceModel>
      <services>
        <service name="System.Web.ApplicationServices.RoleService"
            behaviorConfiguration="ApplicationServiceTypeBehaviors">
          <endpoint contract=
            "System.Web.ApplicationServices.RoleService"
            binding="basicHttpBinding"
            bindingConfiguration="userHttps" 
            bindingNamespace="http://asp.net/ApplicationServices/v200"/>
        </service>
      </services>
      <bindings>
    <basicHttpBinding>
    <binding name="userHttps">
    <security mode="Transport" />
    </binding>
    </basicHttpBinding>
    </bindings>
      <behaviors>
        <serviceBehaviors>
          <behavior name="ApplicationServiceTypeBehaviors">
            <serviceMetadata httpGetEnabled="true"/>
          </behavior>
        </serviceBehaviors>
      </behaviors>
      <serviceHostingEnvironment
        aspNetCompatibilityEnabled="true"/>
    </system.serviceModel>
    

중요한 사용자 데이터를 사용하는 경우에는 HTTPS 프로토콜을 사용하여 SSL(Secure Sockets Layer)을 통해 인증 서비스에 액세스하십시오. SSL을 설정하는 방법에 대한 자세한 내용은 Microsoft 웹 사이트에서 Configuring Secure Sockets Layer(IIS 6.0 Operations Guide)Configuring Secure Sockets Layer in IIS 7.0을 참조하십시오.

표시: