Общие сведения о службе профилей Windows Communication Foundation

Visual Studio 2010

Обновлен: Ноябрь 2007

Веб-служба профилей Windows Communication Foundation (WCF) обеспечивает извлечение свойств профиля ASP.NET из любого приложения, в котором поддерживается отправка и получение SOAP-сообщений. Службу профилей WCF можно применять в приложениях, не использующих платформу .NET Framework, например приложениях Java. С помощью службы профилей можно обеспечить доступность данных профиля одного пользователя в приложениях различного типа.

В этом разделе содержатся следующие подразделы:

Служба профилей используется в качестве службы WCF для извлечения или установки свойств профиля из приложения, не являющегося веб-приложением ASP.NET. Это может быть консольное приложение, приложение Windows Forms или приложение, разработанное на базе отличной от .NET Framework платформы. В приложении должны поддерживаться отправка и получение SOAP-сообщений.

К началу

Служба профилей WCF обеспечивает доступ к свойствам профиля ASP.NET, определенным в веб-приложении ASP.NET. Служба профилей обеспечивает работу внешнего клиента со свойствами профиля ASP.NET.

Определение свойств профиля

Свойства профиля приложения определяются так же, как и для веб-приложения ASP.NET. Свойства профиля устанавливаются в элементе properties файла Web.config. Дополнительные сведения см. в разделе Определение свойств профиля ASP.NET. В следующем примере описывается порядок настройки трех свойств в файле Web.config.

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

Включение службы профилей

Для доступа к свойствам профиля в качестве веб-службы необходимо включить службу профилей и настроить свойства, которые должны предоставляться посредством веб-службы. По умолчанию доступ к свойствам профиля посредством веб-службы не предоставляется. Чтобы определить предоставляемые свойства, используйте свойства ReadAccessProperties и WriteAccessProperties.

В следующем примере показан порядок включения службы профилей в файле Web.config. В этом примере показан порядок настройки доступа к свойствам Birthday, FavoriteColor и PostalCode для чтения. Для записи доступны только свойства Birthday и FavoriteColor.

<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 добавляется значение, определяющее контракт конечной точки. Затем следует выполнить настройку элемента serviceHostingEnvironment, определяющего совместимость с ASP.NET. В элементе basicHttpBinding следует разрешить использование файлов Cookie.

В следующем примере кода показан порядок настройки службы профилей в качестве службы 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:

Эти методы являются закрытыми и недоступны из экземпляра класса ProfileService. Однако они помечены с помощью атрибута OperationContractAttribute и доступны посредством службы WCF.

К началу

В следующей таблице перечислены ключевые серверные классы для службы профилей WCF приложений.

ProfileService

Доступ к профилям пользователей посредством веб-службы.

ProfilePropertyMetadata

Набор значений, которые описывают свойство профиля.

ValidatingPropertiesEventArgs

Данные для события ValidatingProperties.

К началу

Показ: