模拟命名管道客户端

模拟 是线程在与拥有线程的进程不同的安全上下文中执行的能力。 模拟使服务器线程能够在客户端的安全上下文限制内代表客户端执行操作。 客户端通常具有较低级别的访问权限。 有关详细信息,请参阅 模拟

命名管道服务器线程可以调用 ImpersonateNamedPipeClient 函数,以假定连接到管道客户端的用户的访问令牌。 例如,命名管道服务器可以提供对管道服务器具有特权访问权限的数据库或文件系统的访问权限。 当管道客户端向服务器发送请求时,服务器将模拟客户端并尝试访问受保护的数据库。 然后,系统会根据客户端的安全级别授予或拒绝服务器的访问权限。 服务器完成后,它使用 RevertToSelf 函数还原其原始安全令牌。

模拟级别确定服务器在模拟客户端时可以执行的操作。 默认情况下,服务器在 SecurityImpersonation 模拟级别模拟。 但是,当客户端调用 CreateFile 函数以打开管道客户端端的句柄时,客户端可以使用 SECURITY_SQOS_PRESENT 标志来控制服务器的模拟级别。