Практическое руководство. Включение службы проверки подлинности WCF

Visual Studio 2010

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

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

Дополнительные сведения о настройке членства ASP.NET см. в разделе Настройка приложения ASP.NET для использования членства.

Включение службы проверки подлинности

  1. Если веб-приложение ASP.NET еще не создано, его необходимо создать.

  2. Добавьте к веб-узлу файл службы (SVC), содержащий следующую директиву, ссылающуюся на класс AuthenticationService, как показано в следующем примере:

    <%@ ServiceHost 
      Language="VB"
      Service="System.Web.ApplicationServices.AuthenticationService" 
      Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory" %>
    <%@ ServiceHost 
      Language="C#"
      Service="System.Web.ApplicationServices.AuthenticationService" 
      Factory="System.Web.ApplicationServices.ApplicationServicesHostFactory" %>
    
  3. Введите в файл Web.config следующие параметры конфигурации для настройки службы и обязательного использования протокола SSL:

    • Включите службу проверки подлинности в элементе authenticationService.

    • Определите контракт конечной точки в элементе services и задайте поведение службы в элементе behaviors. Чтобы предотвратить возникновение исключений в некоторых средствах создания прокси, необходимо включить в контракт конечной точки свойство bindingNamespace, как показано в приведенном ниже примере. Дополнительные сведения о конечных точках WCF см. в разделе Конечные точки Windows Communication Foundation.

    • Настройте элемент serviceHostingEnvironment для обеспечения совместимости с ASP.NET. Дополнительные сведения о размещении служб WCF см. в разделе Службы WCF и ASP.NET.

    • Создайте в элементе bindings привязку, требующую использовать протокол SSL. Дополнительные сведения о безопасности транспортировки в WCF см. в разделе Безопасность транспортировки.

    В следующем примере показан элемент system.serviceModel из файла Web.config, в котором используются параметры конфигурации, описанные в предыдущем списке.

    <system.web.extensions>
      <scripting>
        <webServices>
          <authenticationService enabled="true" 
             requireSSL = "true"/>
        </webServices>
      </scripting>
    </system.web.extensions>
    <system.serviceModel>
      <services>
        <service name="System.Web.ApplicationServices.AuthenticationService"
            behaviorConfiguration="AuthenticationServiceTypeBehaviors">
          <endpoint contract=
            "System.Web.ApplicationServices.AuthenticationService"
            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="AuthenticationServiceTypeBehaviors">
            <serviceMetadata httpGetEnabled="true"/>
          </behavior>
        </serviceBehaviors>
      </behaviors>
      <serviceHostingEnvironment 
        aspNetCompatibilityEnabled="true"/>
    </system.serviceModel>
    

Настройка проверки подлинности с помощью форм

  • В файле Web.config настройте веб-приложение для использования проверки подлинности с помощью форм.

    В следующем примере демонстрируется элемент authentication в файле Web.config, настроенный на использование проверки подлинности с помощью форм.

    <authentication mode="Forms">
      <forms cookieless="UseCookies" />
    </authentication>
    

    Для работы службы проверки подлинности необходимо включить файлы Cookie. Соответственно, в элементе authentication для атрибута cookieless следует задать значение "UseCookies". Дополнительные сведения см. в разделе Общие сведения о проверке подлинности форм ASP.NET.

При передаче конфиденциальных сведений, таких как учетные данные для проверки подлинности, доступ к службе проверки подлинности всегда должен осуществляться по протоколу SSL (с помощью протокола HTTPS). Дополнительные сведения о настройке протокола SSL см. в разделе Настройка SSL (Руководство пользователя IIS 6.0).

Показ: