我见过很多关于WCF模拟双跳问题的文章,但他们都没有专门帮助我解决我的问题。WCF双跳本地主机丢失第二跳假冒
我错过了什么?我还需要做什么才能保留我的模拟用户(DOMAIN \ UserName)在服务2上?我正在查看ServiceSecurityContext.Current.WindowsIdentity.Name来确认 - 也许这是错误的。
的设置:
- 客户端应用托管在本地主机与服务参考IIS到服务1 - 冒充的WindowsIdentity(域\用户名)
- 服务1 - WCF服务托管在本地主机IIS与服务引用到服务2
- 服务2 - WCF服务托管在本地主机IIS
我使用ALL basicHttpBindings让事情变得简单。我已经在两个服务端点上设置了SPN。
- 我可以成功地使双跳和代码执行就好
- 在服务1(跳1)我的ServiceSecurityContext.Current.WindowsIdentity是我假冒的人(域\用户名)
- 在服务2(跳2),我ServiceSecurityContext.Current.WindowsIdentity是IIS应用程序池用户
- ImpersonationLevel = “委派”
- 两个WCF服务的Windows认证功能和匿名残疾人
**注意:我在我的开发箱上全部在本地运行。即便如此,我的代表团级别也允许我自己的代表团参加。也许矫枉过正。
绑定(两种服务类似):
<binding name="...">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
我已经设置impersonationLevel =“委派” WCF服务客户端和服务端点行为的配置上都。我的服务方法特别用impersonationOption =“Allowed”(跳1)和impersonationOption“必需”(跳2)装饰。
是否可以显示与您如何设置模拟相关的代码或配置? – EdmundYeung99 2013-03-19 00:31:04
嗨埃德蒙。我已经添加了基本的绑定配置。具体来说,你还有什么兴趣看到? – chrisriesgo 2013-03-19 00:46:46
你在哪里配置你的模拟级别? – EdmundYeung99 2013-03-19 03:43:07