我的Soap客户端出现了一个身份验证问题,它没有正确接收凭据。这是一个基本的身份验证(用户名和密码),显然是一个绑定问题。
对于身份验证问题,我跳过了这个问题:
系统.服务模型.安全性.消息安全性异常:'HTTP要求未受权使用“Anonymous”客户端验证配置。从服务器收到的验证信头是“Basic realm=“SAP NetWeaver Application Server [PRD/400]""。'
使用binding.Security.Mode = BasicHttpSecurityMode.Transport;
来解决这个问题。但是现在我有了一个新的问题,它说:
System.ArgumentException:'提供的URI方案“http”无效;应为“https”。参数名称
我不明白的是,当我使用BasicHttpSecurityMode时,为什么它告诉我该方案是HTTP而期望HTTPS。提供安全的传输是HTTPS
BasicHttpBinding binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.Transport;
SoapClient client = new SoapClient(binding, endpoint);
client.ClientCredentials.UserName.UserName = _userName;
client.ClientCredentials.UserName.Password = _password;
await client.OpenAsync();
编辑:
现在我尝试使用BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly);
但这给了我同样的第一个错误:
系统.服务模型.安全性.消息安全性异常:'HTTP要求未受权使用“Anonymous”客户端验证配置。从服务器收到的验证信头是“Basic realm=“SAP NetWeaver Application Server [PRD/400]""。'
2条答案
按热度按时间xu3bshqb1#
将其设置为HTTPS,但您传递是HTTP如果终结点是HTTP而不是HTTPS,则它将失败
0g0grzrc2#
系统.服务模型.安全性.消息安全性异常:'HTTP要求未受权使用“Anonymous”客户端验证配置。从服务器收到的验证信头是“Basic realm=“SAP NetWeaver Application Server [PRD/400]""。'
错误的密码也可能是导致此错误消息的原因。
确保服务器和客户端的配置相同。