【发布时间】:2013-09-03 09:57:52
【问题描述】:
我在为 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'。"}
我已配置企业身份验证和专用网络(客户端和服务器)功能
在登录域用户的上下文中调用服务需要做什么?
(我发现this unanswered question 可能指的是同一个问题,但还没有答案?
【问题讨论】:
标签: c# wcf authentication windows-store-apps