我在为 Win Auth 配置的本地计算机上将 WCF 服务部署到 IIS
<basicHttpBinding>
<binding name="NewBinding0">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
我有一个名为它的测试 WPF 项目,它工作得很好。我试图创建一个 Windows 应用商店应用程序并使用我的登录(域)用户来调用该服务,但无法让它工作我的用户是域用户,我可以通过调用来查看它Windows.System.UserProfile.UserInformation.GetDomainNameAsync()
如果我实现部分 ConfigureEndpoint 并明确设置凭据,我可以很好地使用该服务 -
static partial void ConfigureEndpoint(System.ServiceModel.Description.ServiceEndpoint serviceEndpoint, System.ServiceModel.Description.ClientCredentials clientCredentials)
{
clientCredentials.Windows.ClientCredential = new System.Net.NetworkCredential("<domain>\\<username>", "<password>");
}
但如果我简单地说
clientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
我收到以下错误
{“HTTP 请求未使用客户端身份验证方案‘Ntlm’。从服务器收到的身份验证标头是‘Negotiate,NTLM’。”}
我已配置企业身份验证和专用网络(客户端和服务器)功能
在登录域用户的上下文中调用服务需要做什么?
(我发现这个未回答的问题可能指的是同一个问题,但还没有答案吗?