Windows Communication Foundation 프로필 서비스 개요

Visual Studio 2010

업데이트: 2007년 11월

WCF(Windows Communication Foundation) 프로필 웹 서비스를 사용하면 SOAP 메시지를 보내고 사용할 수 있는 응용 프로그램에서 ASP.NET 프로필 속성을 검색할 수 있습니다. .NET Framework를 사용하지 않는 Java 응용 프로그램과 같은 응용 프로그램에서 WCF 프로필 서비스를 사용할 수 있습니다. 프로필 서비스를 사용하면 여러 응용 프로그램에서 동일한 사용자 프로필 데이터를 사용할 수 있습니다.

이 항목에는 다음과 같은 단원이 포함되어 있습니다.

ASP.NET 웹 응용 프로그램이 아닌 응용 프로그램에서 프로필 속성을 검색하거나 설정하려면 프로필 서비스를 WCF 서비스로 액세스합니다. 이러한 응용 프로그램에는 콘솔 응용 프로그램, Windows Forms 응용 프로그램, .NET Framework를 사용하여 개발하지 않은 응용 프로그램이 포함됩니다. 이 응용 프로그램에서 SOAP 메시지를 보내고 사용할 수 있어야 합니다.

맨 위로 이동

WCF 프로필 서비스를 사용하면 ASP.NET 웹 응용 프로그램에서 정의한 ASP.NET 프로필 속성에 액세스할 수 있습니다. 프로필 서비스는 외부 클라이언트와 ASP.NET 프로필 속성 간을 이어주는 다리 역할을 합니다.

프로필 속성 정의

ASP.NET 웹 응용 프로그램에서와 같은 방법으로 응용 프로그램의 프로필 속성을 정의합니다. 즉, Web.config 파일의 properties의 요소에서 프로필 속성을 설정합니다. 자세한 내용은 ASP.NET 프로필 속성 정의를 참조하십시오. 다음 예제에서는 Web.config 파일에서 세 가지 속성을 설정하는 방법을 보여 줍니다.

<system.web>
  <profile > 
    <properties>
      <add name="Birthday" /> 
      <add name="FavoriteColor" />
      <add name="PostalCode" />
    </properties> 
  </profile>
</system.web>

프로필 서비스 사용

프로필 서비스를 웹 서비스로 액세스하려면 프로필 서비스를 사용하도록 설정하고 웹 서비스를 통해 노출할 프로필 속성을 구성해야 합니다. 기본적으로 웹 서비스를 통해 프로필 속성에 액세스할 수 없습니다. ReadAccessPropertiesWriteAccessProperties 속성을 사용하여 노출할 프로필 속성을 지정할 수 있습니다.

다음 예제에서는 Web.config 파일에서 프로필 서비스를 사용하도록 설정하는 방법을 보여 줍니다. 그리고 읽기 액세스를 위한 세 가지 속성인 Birthday, FavoriteColorPostalCode를 구성하는 방법을 보여 줍니다. 그러나 이들 중 두 개 속성 BirthdayFavoriteColor에만 쓰기 액세스를 허용합니다.

<system.web.extensions>
  <scripting>
    <webServices>
      <profileService enabled="true"
        readAccessProperties="Birthday, FavoriteColor, PostalCode"
        writeAccessProperties="Birthday, FavoriteColor" >
    </webServices>
  </scripting>
</system.web.extensions>

프로필 서비스를 WCF 서비스로 구성

프로필 서비스를 WCF 서비스로 사용하려면 웹 사이트에 WCF 서비스 파일(.svc)을 추가합니다. .svc 파일에서 ProfileService 클래스를 참조하는 다음과 같은 지시문을 추가합니다. .svc 파일에는 이 지시문 외에는 아무 내용도 포함되지 않습니다.

<%@ ServiceHost Language="C#" Service="System.Web.ApplicationServices.ProfileService"
Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory" %>

<%@ ServiceHost Language="VB" Service="System.Web.ApplicationServices.ProfileService" 
Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory"%>

또한 Web.config 파일에 몇 가지 WCF 값을 추가하여 클라이언트에서 프로필 서비스에 바인딩할 수 있게 해야 합니다. services 요소에서 끝점 계약을 정의하는 값을 추가합니다. 그런 다음 ASP.NET 호환성을 위해 serviceHostingEnvironment 요소를 구성합니다. basicHttpBinding 요소에서 쿠기가 허용되는지 여부를 지정합니다.

다음 예제에서는 프로필을 WCF 서비스로 구성하는 방법을 보여 줍니다.

<system.serviceModel>
  <services>
    <service name="System.Web.ApplicationServices.ProfileService">
      <endpoint contract=
        "System.Web.ApplicationServices.ProfileService"
         binding="basicHttpBinding" />
    </service>
  </services>
  <serviceHostingEnvironment
    aspNetCompatibilityEnabled="true"/>
  <bindings>
    <basicHttpBinding allowCookies="true">
  </bindings> 
</system.serviceModel>

자세한 내용은 다음 항목을 참조하십시오.

SOAP 클라이언트에서 프로필 서비스 액세스

SOAP 클라이언트에서 ProfileService 클래스에 대한 프록시 클래스를 만들어 프로필 데이터에 액세스할 수 있습니다. .NET framework 외의 프로그래밍 프레임워크를 사용하여 클라이언트를 만든 경우 해당 프레임워크의 도구를 사용하여 웹 서비스의 메타데이터를 기반으로 프록시 클래스를 만들 수 있습니다. 그런 다음 클라이언트 응용 프로그램에서 프록시 클래스의 메서드를 호출하여 프로필 서비스에 액세스합니다.

자세한 내용은 연습: ASP.NET 응용 프로그램 서비스 사용을 참조하십시오.

ProfileService 클래스에는 WCF 서비스를 통해서만 액세스할 수 있는 다음과 같은 작업이 포함되어 있습니다.

이러한 메서드는 private이므로 ProfileService 클래스의 인스턴스를 통해 액세스할 수 없습니다. 그러나 OperationContractAttribute 특성을 사용하여 표시하면 WCF 서비스를 통해 액세스할 수 있도록 만들 수 있습니다.

맨 위로 이동

다음 표에서는 WCF 프로필 응용 프로그램 서비스와 관련된 핵심 서버 클래스를 보여 줍니다.

ProfileService

웹 서비스를 통해 사용자 프로필에 액세스할 수 있게 해 줍니다.

ProfilePropertyMetadata

프로필 속성을 설명하는 값 컬렉션을 제공합니다.

ValidatingPropertiesEventArgs

ValidatingProperties 이벤트에 대한 데이터를 제공합니다.

맨 위로 이동

표시: