gpt4 book ai didi

WCF 仅本地 NamedPipe

转载 作者:行者123 更新时间:2023-12-04 16:47:30 24 4
gpt4 key购买 nike

这是我的问题的一个简单示例。我正在编写一个应用程序,它自己托管 WCF 服务,仅在用户 session 中进行通信。当多个用户在终端服务机器上同时运行这个应用程序时,只要他们没有本地管理员权限,所有用户都会很高兴。如果两个或更多用户是管理员,问题就开始了,第一个用户创建服务,第二个用户因为服务已经在全局范围内创建......

没有 WCF 的简单 Win32 实现将创建一个带有“Local\”前缀的命名管道。 WCF 似乎首先尝试创建全局共享内存映射,然后失败,然后创建本地映射。

有没有人找到一种方法来自托管当前用户 session 本地的 WCF 服务,即使用户是本地管理员?

最佳答案

简单的方法是让每个实例使用不同的服务 URL(从用户 session 的某些特征中派生它以使其唯一 - 例如 session 登录 ID)。

如果 WCF 绑定(bind)以足够的权限运行,则无法阻止 WCF 绑定(bind)在全局命名空间中发布其端点详细信息(也称为真实管道名称)。但也许您可以在打开服务主机之前调整进程 token 权限以禁用 SeCreateGlobalPrivilege,如果您的服务发现它以具有提升权限的管理员身份运行。

关于WCF 仅本地 NamedPipe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14615457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com