Как заменить 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 можно просмотреть все резервирования URL-адресов HTTP из командной строки с повышенными привилегиями.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

  1. Нажмите кнопку "Пуск", выберите пункт "Все программы", выберите пункт "Аксессуары", щелкните правой кнопкой мыши командную строку и нажмите кнопку "Запустить как Администратор istrator" в контекстном меню, которое появится. Нажмите кнопку "Продолжить " в окне "Контроль учетных записей пользователей" (UAC), которое может попросить разрешения продолжить.

  2. Введите в netsh http delete urlacl url=http://+:80/Temporary_Listen_Addresses/ окне командной строки.

  3. Если резервирование удалено успешно, появится следующее сообщение. Резервирование URL-адресов успешно удалено

Создание новой группы безопасности и нового ограниченного резервирования URL-адреса

Чтобы заменить резервирование URL-адресов WCF ограниченным резервированием, необходимо сначала создать новую группу безопасности. Это можно сделать двумя способами: из командной строки или из консоли управления компьютером. Требуется выполнить только одно действие.

Создание новой группы безопасности из командной строки

  1. Нажмите кнопку "Пуск", выберите пункт "Все программы", выберите пункт "Аксессуары", щелкните правой кнопкой мыши командную строку и нажмите кнопку "Запустить как Администратор istrator" в контекстном меню, которое появится. Нажмите кнопку "Продолжить " в окне "Контроль учетных записей пользователей" (UAC), которое может попросить разрешения продолжить.

  2. Введите в net localgroup "<security group name>" /comment:"<security group description>" /add командной строке. Замена <имени> группы безопасности именем группы безопасности, которую вы хотите создать, и< описание> группы безопасности с подходящим описанием для группы безопасности.

  3. Если группа безопасности создана успешно, появится следующее сообщение. Команда успешно завершена.

Создание новой группы безопасности из консоли управления компьютером

  1. Нажмите кнопку "Пуск", щелкните панель управления, щелкните Администратор istrative Tools и щелкните "Управление компьютерами", чтобы открыть консоль управления компьютером. Нажмите кнопку "Продолжить " в окне "Контроль учетных записей пользователей" (UAC), которое может попросить разрешения продолжить.

  2. Щелкните "Системные инструменты", выберите локальные пользователи и группы, щелкните правой кнопкой мыши папку "Группы" и выберите команду "Создать группу" в контекстном меню, которое появится. Введите нужное имя группы, описание и другие сведения этой новой группы безопасности и нажмите кнопку "Создать", чтобы создать группу безопасности.

Создание ограниченного резервирования URL-адреса

  1. Нажмите кнопку "Пуск", выберите пункт "Все программы", выберите пункт "Аксессуары", щелкните правой кнопкой мыши командную строку и нажмите кнопку "Запустить как Администратор istrator" в контекстном меню, которое появится. Нажмите кнопку "Продолжить " в окне "Контроль учетных записей пользователей" (UAC), которое может попросить разрешения продолжить.

  2. Введите в netsh http add urlacl url=http://+:80/Temporary_Listen_Addresses/ user="<machine name>\<security group name> командной строке. Замена <имени> компьютера именем компьютера, на который должна быть создана группа безопасности, и< имя> группы безопасности с именем созданной ранее группы безопасности.

  3. Если резервирование создано успешно, появится следующее сообщение. Резервирование URL-адресов успешно добавлено.