В этом упражнении служба STS не используется. Здесь создается служба WCF для доступа к утверждениям текущего пользователя через свойство IClaimsPrincipal. Для этого необходимо добавить в проект модуль ClaimsPrincipalHttpModule с помощью программы FedUtil. Этот модуль позволяет преобразовать объект IPrincipal текущего пользователя в объект IClaimsPrincipal.

Примечание.
Для корректной работы FedUtil необходимо запустить Visual Studio в режиме с повышенными правами.

Сначала создайте службу WCF, поддерживающую утверждения, как показано в разделе Служба WCF, поддерживающая утверждения.

Затем щелкните правой кнопкой мыши проект в обозревателе решений и выберите команду "Добавить ссылку на службу STS".

Откроется программа FedUtil. Откроется диалоговое окно FedUtil со страницей приветствия служебной программы федерации.

На этой странице необходимо заполнить два поля:

  1. Местоположение конфигурации приложения: укажите путь к файлу web.config службы WCF. При запуске программы FedUtil не из Visual Studio это поле пусто. При запуске программы FedUtil запущена из Visual Studio данное поле уже будет содержать путь к файлу web.config текущего проекта. Файл web.config должен к этому моменту существовать и находиться в состоянии по умолчанию (в том, в каком он был создан средствами Visual Studio). Если программа FedUtil запускается несколько раз для одного и того же файла web.config, она будет просто перезаписывать содержимое, добавляемое в web.config.

  2. URI приложения: укажите код URI своей службы WCF. Следует иметь в виду, что это SVC-файл. При запуске программы FedUtil не из Visual Studio это поле пусто. При запуске программы FedUtil из Visual Studio данное поле будет содержать два кода URI для этого проекта: один с именем localhost, другой с полным доменным именем данного компьютера (если оно определено). Этот код URI используется в качестве значения области при настройке приложения для поддержки утверждений. Если код URI не является безопасным (т. е. не начинается с https://), при нажатии кнопки "Далее" появится соответствующее предупреждение.

После ввода необходимых сведений нажмите кнопку "Далее". Откроется страница "Сведения о приложении".

Выберите имя настраиваемой службы и имя контракта конечной точки, после чего нажмите кнопку "Далее". Если у службы несколько конечных точек, а утверждения требуется настроить только для некоторых из них, выберите эти конечные точки.

Откроется страница "Служба STS".

Выберите параметр "Без службы STS". Будет создана служба WCF, поддерживающая утверждения и не использующая для выпуска утверждений службу STS. Эта служба получает созданные платформой утверждения по умолчанию. Нажмите кнопку "Далее". Откроется страница "Сводка".

Нажмите кнопку "Готово".

Если сейчас открыть файл web.config, можно увидеть, что он изменен программой FedUtil:

  • Элемент <configuration>/<configSections> теперь содержит ссылку на раздел конфигурации microsoft.IdentityModel:

      Копировать код
    <section name="microsoft.identityModel" type="Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    
  • Элемент <configuration> теперь включает раздел конфигурации microsoft.identityModel с указанным ранее универсальным кодом ресурса (URI) приложения:

      Копировать код
    <microsoft.identityModel> <service name="ClaimsAwareService1.Service"> <audienceUris> <add value="http://localhost:64705/ClaimsAwareService1/Service.svc" /> </audienceUris> </service> </microsoft.identityModel>