且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

创建命名管道(WCF)所需的最低OS权限

更新时间:2021-12-27 08:11:15

本地登录的用户使用netNamedPipe绑定设置WCF服务的服务端不需要特殊权限.

No special permissions are required for a locally logged on user to set up the service end of a WCF service using the netNamedPipe binding.

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

However, you do need to worry about whether the clients can find and connect to the service. There are two aspects to this:

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

更多详细信息

More details here if you are interested.