创build命名pipe道(WCF)所需的最低操作系统权限

我有一个运行在login用户的上下文中的exe文件。 该exe使用WCF使自己成为一个命名pipe道服务器(它将被多个客户端调用)。

用户是否需要exe的特定权限才能创build命名pipe道? 我已经尝试以相当小的权限(即在本地用户组)中作为用户运行,并且这种方式正常工作 – 但是我担心,当我部署到客户端网站时,用户可能会受到某种限制意味着命名pipe道创build不起作用。

Solutions Collecting From Web of "创build命名pipe道(WCF)所需的最低操作系统权限"

本地登录的用户无需使用netNamedPipe绑定来设置WCF服务的服务端的特殊权限。

但是,您需要担心客户端是否可以找到并连接到服务。 这有两个方面:

  1. 客户端必须在通过网络登录建立的安全上下文中运行(例如在Web应用程序中模拟远程用户)。 这是因为WCF拒绝访问作为NETWORK USERS组成员的任何登录。
  2. 如果您在Vista或Windows7上运行,如果希望在登录用户会话之外运行的客户端访问服务,则需要使用SeCreateGlobalPrivilege权限运行service exe。 这是因为WCF服务需要将管道名称发布到共享内存对象以使客户端能够找到它:如果WCF服务堆栈可以在全局名称空间(对所有登录会话都可见)中创建此共享内存对象,则会执行此操作。 但是,如果它没有必要的权限,它将在“本地”名称空间中创建共享内存对象(仅在同一登录会话中可见)。 将WCF服务作为Windows服务部署是让它以该特权运行的唯一简单方法,因此在会话之外对客户端可见。

这里有更多的细节,如果你有兴趣。