在模拟上下文之外调用 WCF 服务?
Posted
技术标签:
【中文标题】在模拟上下文之外调用 WCF 服务?【英文标题】:Call a WCF service outside of the impersonation context? 【发布时间】:2010-07-30 11:26:23 【问题描述】:我在 WCF 中遇到了模拟问题。即,我从 ASP.NET 中调用命名管道服务并启用模拟。这失败了(由于管道上的权限阻止了网络中的任何人)。那么,有什么方法可以在模拟上下文之外进行调用?我不需要冒充进行此调用,但看不到任何这样做的方法。
有人有什么想法吗?
谢谢 马特
PS。我需要通过配置以声明方式执行此操作...
【问题讨论】:
【参考方案1】:我很幸运,我需要禁用模拟的服务位于没有其他人使用的 IIS 端点上,我可以很高兴地更改 web.config 中的身份验证/授权参数,以便授予访问权限给匿名用户。不是修复,而是变通方法。
据我所知,如果我想在代码中执行此操作,我会将客户端封装在对 WindowsIdentity.Impersonate(IntPtr.Zero) 的调用中,这显然与调用 Win32 RevertToSelf 相同。不过,我不知道在处理此上下文时会发生什么(撤消是否重新模拟了最初模拟的用户?还是恢复卡住了?)
【讨论】:
以上是关于在模拟上下文之外调用 WCF 服务?的主要内容,如果未能解决你的问题,请参考以下文章