我只想从使用用户名和密码的c#客户端使用HTTPS-soap-webservice。 我不想使用app.config,所以我只是直接在代码中设置了几个属性。HTTP请求未经授权......“匿名”
当我试图访问一个Web服务,方法我总是得到以下错误:
The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'Basic realm......
这是我的代码(我试过很多更认为,但现在这是我的代码):
var b = new WSHttpBinding(SecurityMode.TransportWithMessageCredential);
b.Security.Message.ClientCredentialType = MessageCredentialType.UserName;
b.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
....
var client = new MyClient(b, new Endpoint("https://myurl..."))
client.clientCredentials.UserName.UserName = "myuser";
client.clientCredentials.UserName.Password = "mypassword";
client.myMethodcall();
就像我上面写的,我已经找到了很多“解决方案”如何解决这个错误,但他们只是不适合我。我使用了basicHttpBinding,我使用了WSHttpBinding,我设置了绑定超时,我使用了SecurityMode.TransportWithMessageCredential等。看起来客户端根本没有设置身份验证头!
它应该没有区别直接在代码中设置所有属性或使用app.config,对不对?任何人都可以帮助我吗?
当我只使用app.config来定义它的工作没有问题的绑定。那么上面的代码有什么问题?编辑:我使用上面的EndpointAddress而不是端点。 –