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