我有一个客户端控制台应用程序,该应用程序具有一些用户凭据-域\用户和纯文本密码。客户端应用通过调用LogonUser(dwLogonType:LOGON32_LOGON_NETWORK)win32 API获得该用户的Windowsidentity对象。我使用Windows身份模拟并进行WCF服务调用(托管在其他计算机上)。 WCF服务配置为使用Windows集成安全性的TCP协议。呼叫失败,并显示SecurityNegotiation异常,并显示错误:远程服务器不满足相互身份验证的要求。
我在这里的假设是,服务器看到匿名客户端身份,但该客户端拒绝了该身份,因为端点被配置为使用Windows集成身份验证。我的猜测是需要为Windows委派设置服务器帐户。我的猜测正确吗?
也,
我对dwLogonType的选择是否= LOGON32_LOGON_NETWORK正确?
没有LogOnUser返回的令牌(dwLogonType = LOGON32_LOGON_NETWORK)是否可以用于进行远程WCF调用?
[使用dwLogonType = LOGON32_LOGON_NETWORK选项,LogonUser返回无法用于将用户身份传播到网络资源的令牌。具有LogonUser的选项dwLogonType = LOGON32_LOGON_NETWORK_CLEARTEXT已解决此问题。使用该选项,LogonUser生成了一个令牌,该令牌能够以用户身份访问网络资源。
我完全感谢arx解决方案。只有他的评论我才能解决问题。