С помощью элемента управления FederatedPassiveSignIn можно расширить возможности веб-сайта, обеспечив поддержку перенаправления пользователей на федеративную службу STS и обработку маркеров безопасности, выпускаемых этой службой.

В этом упражнении создается приложение проверяющей стороны ASP.NET, поддерживающее утверждения. Затем с помощью класса FederatedPassiveSignIn пользователи перенаправляются на локальную службу STS. В конце упражнения создается локальная служба STS с помощью программы FedUtil.

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

В Visual Studio откройте меню "Файл" и выберите "Создать", "Веб-сайт". Выберите пункт "Веб-сайт ASP.NET с поддержкой утверждений".

Щелкните правой кнопкой мыши файл login.aspx проекта и выберите пункт "Конструктор представлений".

Откройте панель элементов и найдите в разделе "Элементы управления Windows Identity Foundation" элемент управления FederatedPassiveSignIn.

Перетащите в конструкторе элемент управления FederatedPassiveSignIn на страницу login.aspx.

Если элемент управления FederatedPassiveSignIn не отображается на панели элементов, выберите в меню "Сервис" пункт Выбрать элементы панели элементов.... На вкладке Компоненты .NET Framework выберите элемент управления FederatedPassiveSignIn.

После добавления элемента управления FederatedPassiveSignIn на страницу login.aspx можно удалить существующую форму входа.

Выделите в конструкторе элемент управления FederatedPassiveSignIn и перейдите в окно "Свойства". Присвойте свойству UseFederationPropertiesFromConfiguration значение true. Если этому свойству присвоено значение false, программу FedUtil для элемента управления запустить нельзя. Пока свойству присвоено значение true, элемент управления будет пропускать все свойства пассивной федерации, заданные непосредственно в элементе управления.

Щелкните элемент управления FederatedPassiveSignIn правой кнопкой мыши и выберите пункт Вызвать FedUtil.... В программе FedUtil выполните действия, описанные в подразделе "Использование существующей службы STS" раздела Установление отношения доверия между приложением проверяющей стороны ASP.NET и службой STS с помощью FedUtil.

При наличии на странице входа нескольких элементов управления FederatedPassiveSignIn, для каждого из которых необходимо задать собственный метод проверки подлинности и собственную службу STS, на которую будут перенаправляться пользователи, присвойте свойству UseFederationPropertiesFromConfiguration каждого элемента управления значение false и задайте свойства пассивной федерации непосредственно в элементах управления, а не с помощью программы FedUtil.

При получении элементом управления FederatedPassiveSignIn ответа на федеративный пассивный вход в систему (RSTR) свойство wctx должно содержать идентификатор элемента управления, соответствующий элементу управления на веб-странице. Это необходимо в том случае, когда на одной странице входа размещено несколько элементов управления FederatedPassiveSignIn, а элементу, инициировавшему запрос на федеративный пассивный вход в систему (RST), необходимо обработать ответ (RSTR). Если служба STS отправит маркер в ответе на запрос (RSTR) и не присвоит значение свойству wctx, элементу FederatedPassiveSignIn не удастся обработать ответ.

Запуск программы FedUtil из элемента управления FederatedPassiveSignIn отличается от запуска этой же программы по щелчку проекта в Visual Studio правой кнопкой мыши. При запуске программы FedUtil из элемента управления поля на странице "Сведения о приложении" заранее не заполняются. Кроме того, на странице "Служба STS" доступен единственный параметр — использование существующей службы STS. Рекомендуется сначала создать службу STS, следуя инструкциям, приведенным в разделах Инструкции: создание службы STS ASP.NET и Инструкции: создание службы STS WCF. После создания службы STS можно запустить программу FedUtil из элемента управления FederatedPassiveSignIn и установить отношение доверия между приложением и этой службой.