0

我需要使用最大权限(NT AUTHORY\System)从在同一本地计算机上以低得多的特权模式(NT AUTHORY\Network 服务)运行的其他进程(IIS7 模块工作进程)调用一个函数。

IIS 模块将调用该函数并传递一些文本(用户名),并且该函数需要返回 HADNLE 类型,该函数将在使用 CloseHandle 函数处理后关闭。

(功能:LogonUser http://msdn.microsoft.com/en-us/library/aa378184(VS.85).aspx

做这个的最好方式是什么?COM+、共享内存、命名管道?我没有任何编程经验,所以我需要一些帮助。我不知道如何使用命名管道传递句柄类型?(我只看到了仅传递基于文本的消息的示例,而不是指针或其他数据类型)。

4

3 回答 3

1

句柄不能跨会话边界使用。而且我不是 100% 确定它是否可以跨进程边界用于所有类型的句柄。

例如,最好使用管道通知以提升的权限运行的其他进程以获取它自己的句柄并执行您想要的任何操作。

至于什么是进行沟通的最佳方法,这实际上取决于您的确切需求和您在每种方式中的确切经验水平。

于 2010-02-17T20:14:19.667 回答
0

仅供参考,句柄只是 Windows 中的 32 位整数值。它不是指向内存位置的指针。

于 2010-02-17T20:17:26.153 回答
0

您不能将句柄传递给另一个进程,句柄是本地进程。但是您可以使用DuplicateHandle创建句柄的克隆以供其他进程使用。只有其他进程可以使用副本。另一个进程负责调用CloseHandle它。

于 2010-02-17T20:25:41.767 回答