从服务器收到的身份验证 header.. BASIC - WFC - NET CORE
The authentication header received from the server.. BASIC - WFC - NET CORE
我使用 WCF(连接服务)和 .NET CORE,我想调用 wfc 服务并发送 xml... 但是当执行服务时,
这抛出下一个异常
"The authentication header received from the server was 'Basic realm="AXIS"'."
当我 运行 SOAP UI 中的服务时,我分配了基本授权选项并且它工作得很好......但是在这部分我不知道如何设置类型授权
我也没有任何配置 xml 文件,只有一个名为 ConnectedService.json
的 json
代码:
var endpoint = new TestService.WebTest_Service.EndpointConfiguration();
var service = new TestService.WebTest_Service(endpoint);
string strXml = _getXml();
TestService.XML xml = new TestService.XML();
xml.document = strXml;
service.ClientCredentials.UserName.UserName = "username";
service.ClientCredentials.UserName.Password = "password";
var result = service.invokeAsync(xml); // => THROW ERROR
首先确保账号和密码正确,也可以使用domain/user.
client.ClientCredentials.UserName.UserName = @"domain\username";
client.ClientCredentials.UserName.Password = "password";
其次,请检查自动生成的服务端点。它应该位于 Reference.cs
。构造函数中的参数是一个enum
,表示应该使用哪个端点。
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client(ServiceReference1.Service1Client.EndpointConfiguration.BasicHttpBinding_IService1);
client.ClientCredentials.UserName.UserName = "administrator";
client.ClientCredentials.UserName.Password = "abcd1234!";
最后,我们也可以在 soap 请求中手动添加 Basic Http header。
client.ClientCredentials.UserName.UserName = "UserName";
client.ClientCredentials.UserName.Password = "Password";
using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
{
HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
httpRequestProperty.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(client.ClientCredentials.UserName.UserName + ":" + client.ClientCredentials.UserName.Password));
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
// below is a sample call
int response = client.addNumbers(1, 2);
Console.WriteLine(response);
Console.ReadLine();
}
如果问题仍然存在,请随时告诉我。
我使用 WCF(连接服务)和 .NET CORE,我想调用 wfc 服务并发送 xml... 但是当执行服务时, 这抛出下一个异常
"The authentication header received from the server was 'Basic realm="AXIS"'."
当我 运行 SOAP UI 中的服务时,我分配了基本授权选项并且它工作得很好......但是在这部分我不知道如何设置类型授权
我也没有任何配置 xml 文件,只有一个名为 ConnectedService.json
的 json代码:
var endpoint = new TestService.WebTest_Service.EndpointConfiguration();
var service = new TestService.WebTest_Service(endpoint);
string strXml = _getXml();
TestService.XML xml = new TestService.XML();
xml.document = strXml;
service.ClientCredentials.UserName.UserName = "username";
service.ClientCredentials.UserName.Password = "password";
var result = service.invokeAsync(xml); // => THROW ERROR
首先确保账号和密码正确,也可以使用domain/user.
client.ClientCredentials.UserName.UserName = @"domain\username";
client.ClientCredentials.UserName.Password = "password";
其次,请检查自动生成的服务端点。它应该位于 Reference.cs
。构造函数中的参数是一个enum
,表示应该使用哪个端点。
ServiceReference1.Service1Client client = new ServiceReference1.Service1Client(ServiceReference1.Service1Client.EndpointConfiguration.BasicHttpBinding_IService1);
client.ClientCredentials.UserName.UserName = "administrator";
client.ClientCredentials.UserName.Password = "abcd1234!";
最后,我们也可以在 soap 请求中手动添加 Basic Http header。
client.ClientCredentials.UserName.UserName = "UserName";
client.ClientCredentials.UserName.Password = "Password";
using (OperationContextScope scope = new OperationContextScope(client.InnerChannel))
{
HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
httpRequestProperty.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(client.ClientCredentials.UserName.UserName + ":" + client.ClientCredentials.UserName.Password));
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
// below is a sample call
int response = client.addNumbers(1, 2);
Console.WriteLine(response);
Console.ReadLine();
}
如果问题仍然存在,请随时告诉我。