Минимальные разрешения ОС, необходимые для создания именованного канала (WCF) - PullRequest
8 голосов
/ 04 ноября 2010

У меня есть исполняемый файл, который работает в контексте вошедшего в систему пользователя. Exe использует WCF, чтобы сделать себя именованным канальным сервером (он будет вызываться несколькими клиентами).

Требуется ли пользователю конкретное разрешение для exe-файла, чтобы он мог создать именованный канал? Я пытался работать как пользователь с довольно минимальными разрешениями (т.е. только в локальной группе пользователей), и это работает нормально - но я обеспокоен тем, что при развертывании на клиентском сайте пользователи могут быть ограничены в некотором роде, что означает, что создание именованного канала не работает.

1 Ответ

15 голосов
/ 29 ноября 2010

Никаких специальных разрешений не требуется для локально вошедшего в систему пользователя для настройки конца службы службы WCF с использованием привязки netNamedPipe.

Однако вам нужно беспокоиться о том, смогут ли клиенты найти и подключиться к услуге. Есть два аспекта этого:

  1. Клиенты должны работать в контексте безопасности, который не установлен сетевым входом в систему (например, олицетворением удаленного пользователя в веб-приложении). Это связано с тем, что WCF запрещает доступ к любому входу в систему, который является членом группы NETWORK USERS.
  2. Если вы работаете в Vista или Windows7, исполняемый файл службы должен быть запущен с привилегией SeCreateGlobalPrivilege, если вы хотите, чтобы служба была доступна клиентам, работающим вне сеанса пользователя, вошедшего в систему. Это связано с тем, что службе WCF необходимо опубликовать имя канала в объекте общей памяти, чтобы клиенты могли его найти: если стек служб WCF может создать этот объект общей памяти в глобальном пространстве имен (видимом для всех сеансов входа в систему), это произойдет. Но если у него нет необходимых привилегий, он создает объект общей памяти в локальном пространстве имен (видимый только в том же сеансе входа). Развертывание службы WCF в качестве службы Windows - единственный простой способ запустить ее с этой привилегией и, таким образом, увидеть клиентам вне ее сеанса.

Подробнее здесь , если вы заинтересованы.

...