背景:我有一个在后台工作的Windows服务(显然),并使用 一个实用程序,用于执行某个交互式任务并发回数据 通过命名管道进行服务。每当服务时,实用程序都会运行 认为合适,只能活几秒钟。
问题始于Vista,程序无法自由打开命名管道 用于写访问(参见Windows Service Hardening)。
我计划通过创建具有安全属性的命名管道来解决问题 这样就可以在whos上下文中授予对当前登录用户的写访问权限 程序启动了,我想到了一个问题: 我是否可以使用其(或其线程)仅允许访问该命名管道到进程 处理?
或者换句话说:Windows(Vista / 7 /更高版本)的安全机制可以归结为 进程级粒度?
我是该领域的新手,关于安全的文档让我非常头疼,所以任何启蒙都是受欢迎的。
提前致谢。
答案 0 :(得分:1)
您无法通过进程ID保护对象(因为进程不是安全主体),但您可以在建立连接后使用GetNamedPipeClientProcessId
,如果进程ID不是您喜欢的,则会失败所有请求