我有一个WCF REST服务,它在服务器计算机中公开为Windows Authenticated服务。
由于该服务经过Windows身份验证,因此我可以使用API ServiceSecurityContext.Current.WindowsIdentity 在服务器端形成所请求用户的WindowsIdentity。
问题:
现在我有一台请求Windows认证服务的客户机, 在客户端计算机中,用户以clientmachine / testuser身份登录。使用相同的用户名和密码,服务器机器(servermachine / testuser)中还有一个用户,如果请求来自客户端, ServiceSecurityContext.Current.WindowsIdentity 正在给出 服务器机器(servermachine / testuser)中的用户的windowsidentity,而不是clientmachine / testuser,这是错误的,但如果密码不同,那么windowsidentity就可以了。
我在服务中做错了什么或这个窗口行为? 请帮助我,提前谢谢。
答案 0 :(得分:0)
您是否尝试过使用模拟,使用此属性修饰您的方法
[OperationBehavior(Impersonation = ImpersonationOption.Allowed)]
将此添加到配置
<behavior name="myServiceBehavior">
<!-- Other behaviors -->
<serviceAuthorization impersonateCallerForAllOperations="true" />
</behavior>