Для расширения функциональности веб служб ASP.NET служит надстройка WSE. WSE 3.0 позволяет так же создавать безопасные службы без использования IIS, используя любое приложение в качестве носителя, но при этом выбор транспортного протокола ограничен протоколом TCP. Установка WSE приводит к созданию гибкой настраиваемой промежуточной среды для использования веб сервисов, что позволяет как использовать дополнительные стандарты, так и реализовывать нестандартные расширения благодаря SOAP фильтрам, обрабатывающих передаваемые между клиентом и сервером пакеты SOAP. Последовательность фильтров образует трубопровод (pipeline), рис. 7.3.
Основное достоинство WSE заключается в отделении политики доступа (policy) к веб службе от самой службы. Политика обычно является набором требований и ограничений для клиента веб службы. Политика включает в себя те или иные расширения (assertions или extensions), а также ограничивает доступ идентифицированных пользователей к службе с помощью списка управления доступа. Каждое из расширений WSE может создавать один или два фильтра (для исходящих и входящих пакетов) как на клиенте, так и на сервере (при наличии сборки с расширением на обеих сторонах обмена).
Политика доступа к веб службе может изменяться администратором системы через конфигурационные файлы (рис. 7.4). Как на клиенте, так и на сервере политика хранится в отдельном файле (по умолчанию wse3policyCache.config), а в файле конфигурации клиента или службы (web.config) указывается ссылка на нее. Данные файлы можно редактировать при помощи утилиты WseConfigEditor3.exe или вручную.
Далее приведен пример файла конфигурации web.config при использовании WSE. Раздел <system.web><webServices><soapServerProtocolFactory> включает WSE в цепочку обработки сообщений SOAP. Раздел <microsoft.web.services3><diagnostics> позволят вести журнал всех принятых и отправленных пакетов, что может быть полезно на этапе тестирования.