Как заменить WCF URL резервирование на ограниченное резервирование
Резервирование URL-адреса позволяет ограничить список тех, кто может получать сообщения с URL-адреса или набора URL-адресов. Резервирование включает шаблон URL-адреса, список управления доступом (ACL) и набор флагов. Шаблон URL-адреса определяет, каких URL-адресов коснется резервирование. Дополнительные сведения обработке шаблонов URL-адресов, см. в разделе Маршрутизация входящих запросов. Список управления доступом (ACL) управляет тем, какой пользователь или группа пользователей может получать сообщения с указанных URL-адресов. Флаги указывают, разрешает ли резервирование пользователю или группе отслеживать URL-адрес напрямую или делегирует это разрешение какому-либо другому процессу.
Как часть конфигурации операционной системы по умолчанию, Windows Communication Foundation (WCF) создает глобально допустимое резервирование для порта 80, чтобы все пользователи могли запускать приложения, использующие двустороннее HTTP-соединение для дуплексной связи. Поскольку список управления доступом (ACL) для данного резервирования предназначен для каждого пользователя, администраторы не могут явным образом позволить или запретить отслеживать URL-адрес или набор URL-адресов. В данном разделе объясняется, как удалить это резервирование и создать его повторно с ограниченным списком управления доступом (ACL).
В Windows Vista или Windows Server 2008 можно просмотреть все резервирования HTTP URL-адресов, выполнив в командной строке с правами администратора команду netsh http show urlacl
. В следующем примере показано, на что должно быть похоже резервирование URL-адреса WCF.
Reserved URL : http://+:80/Temporary_Listen_Addresses/
User: \Everyone
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;WD)
Резервирование включает шаблон URL-адреса, используемый в том случае, если приложение WCF использует двустороннее HTTP-соединение для дуплексной связи. URL-адреса этого вида используются службой WCF для отправки сообщений обратно клиенту WCF при двустороннем HTTP-соединении. Каждый пользователь получает разрешение отслеживать URL-адрес, но не может делегировать отслеживание другому процессу. Наконец, список управления доступом (ACL) описывается на языке Security Descriptor Definition Language (SSDL). Дополнительные сведения SSDL см. в разделе SSDL
Удаление резервирования URL-адреса WCF
Нажмите кнопку Пуск, укажите Все программы, выберите Стандартные, правой кнопкой мыши щелкните Командная строка и выберите Запуск от имени администратора в появившемся контекстном меню. Нажмите кнопку Продолжить в окне «Контроль учетных записей», которое может запросить разрешение на продолжение.
Введите netsh http delete urlacl url=http://+:80/Temporary_Listen_Addresses/ в окне командной строки.
Если резервирование удалено успешно, появится следующее сообщение. Резервирование URL-адреса удалено успешно
Создание новой группы безопасности и нового ограниченного резервирования URL-адреса
Чтобы заменить резервирование URL-адреса WCF ограниченным резервированием, сначала следует создать новую группу безопасности. Это можно сделать двумя способами: из командной строки или из консоли управления компьютером. Требуется выполнить только одно действие.
Создание новой группы безопасности из командной строки
Нажмите кнопку Пуск, укажите Все программы, выберите Стандартные, правой кнопкой мыши щелкните Командная строка и выберите Запуск от имени администратора в появившемся контекстном меню. Нажмите кнопку Продолжить в окне «Контроль учетных записей», которое может запросить разрешение на продолжение.
Введите в командную строку: net localgroup "<имя группы безопасности>" /comment:"<описание группы безопасности>" /add. Замените <имя группы безопасности> на имя группы безопасности, которое необходимо создать, и <описание группы безопасности> на подходящее описание для данной группы безопасности.
Если группа безопасности создана успешно, появится следующее сообщение. Команда завершена успешно.
Создание новой группы безопасности из консоли управления компьютером
Нажмите кнопку Пуск, выберите Панель управления, Администрирование и щелкните Управление компьютером, чтобы открыть консоль управления компьютером. Нажмите кнопку Продолжить в окне «Контроль учетных записей», которое может запросить разрешение на продолжение.
Нажмите Служебные программы, выберите Локальные пользователи и группы, щелкните правой кнопкой мыши папку Группы и выберите пункт Новая группа в появившемся контекстном меню. Введите желаемое Имя группы, Описание и другие сведения новой группы безопасности и нажмите кнопку Создать, чтобы создать группу безопасности.
Создание ограниченного резервирования URL-адреса
Нажмите кнопку Пуск, укажите Все программы, выберите Стандартные, правой кнопкой мыши щелкните Командная строка и выберите Запуск от имени администратора в появившемся контекстном меню. Нажмите кнопку Продолжить в окне «Контроль учетных записей», которое может запросить разрешение на продолжение.
Введите в командную строку: netsh http add urlacl url=http://+:80/Temporary_Listen_Addresses/ user="<имя компьютера>\<имя группы безопасности>. Замените <имя компьютера> именем компьютера, на котором необходимо создать группу, и <имя группы безопасности> именем созданной ранее группы безопасности.
Если резервирование создано успешно, появится следующее сообщение. Резервирование URL-адреса добавлено успешно.