C# Web服务客户端
我正在尝试访问soap Web服务I.net Core 3.1 我确实通过Microsoft WCF Web服务参考提供商添加了该服务(我键入用户名和密码以获得访问权限) 但我有一些登录问题 如果我尝试simpel HttpClient,它可以正常工作,我可以获得如下访问权限:C# Web服务客户端,c#,asp.net-core,C#,Asp.net Core,我正在尝试访问soap Web服务I.net Core 3.1 我确实通过Microsoft WCF Web服务参考提供商添加了该服务(我键入用户名和密码以获得访问权限) 但我有一些登录问题 如果我尝试simpel HttpClient,它可以正常工作,我可以获得如下访问权限: CredentialCache credentialCache = new CredentialCache(); credentialCache.Add(new Uri("http://xxx"), "Negot
CredentialCache credentialCache = new CredentialCache();
credentialCache.Add(new Uri("http://xxx"), "Negotiate", new NetworkCredential(strUserName, strPassword, strDomain));
HttpClientHandler handler = new HttpClientHandler();
handler.Credentials = credentialCache;
var httpClient = new HttpClient(handler);
但是使用WCF Web服务引用,我得到了以下错误:
发生了一个或多个错误。(HTTP请求未经客户端身份验证方案“匿名”授权。从服务器接收的身份验证标头为“协商”。)
那么,我如何让我的客户“谈判”?
或者我还需要做什么?我以前没有使用过
CredentialCache
,但是从您所说的来看,似乎在第一个示例中使用凭据设置了“协商”HTTP头,而在第二个示例中没有。看看这个演示如何向SOAP请求添加头的例子。我以前没有使用过CredentialCache
,但是从您所说的来看,它似乎是在用第一个示例中的凭据设置“协商”HTTP头,而不是在第二个示例中。看看这个例子,它展示了如何向SOAP请求添加头。
var client = new xxClient();
var task = Task.Run(async () => await client.GetContactsFromEmailAsync(_test).ConfigureAwait(false)) ;
Console.WriteLine(task.Result.ToString());