我有一个远程 WCF 服务,我在其中实现了自定义授权管理器。作为授权的一部分,我获取客户端的 Windows 身份以执行一些自定义授权。
我遇到的问题是客户端进程作为“UserA”运行,但是当它向 ServerX 上的远程服务发送请求时,该服务会看到“UserB”。
我已经确定这种情况正在发生,因为当我在过去某个阶段(例如通过 RDP)连接到 ServerX 时,我已经要求 Windows 缓存帐户“UserB”的客户端凭据。这是一种很常见的模式,因为许多开发人员都有一个“用户”帐户和一个“管理员”帐户,并且在连接到远程计算机时经常配置 Windows 以缓存他们的“管理员”帐户的凭据。
我知道如何从 Windows 凭据缓存中手动清除项目,但是如何防止 WCF 使用缓存,即始终使用客户端进程标识。