我想连接到此地址上的网络服务: https://webapp2.rzzo.rs/rzzo/RzzoService?wsdl 我在.net 4.0 C#app中添加了服务引用。 这是我用来连接这个服务的代码:
ServiceReference1.RzzoServiceClient client = new ServiceReference1.RzzoServiceClient();
client.ClientCredentials.UserName.UserName = "------";
client.ClientCredentials.UserName.Password = "-------";
bool check = client.CheckConnection();
这是我必须得到的消息(我是从服务提供商那里得到的):
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-
utility-1.0.xsd">
<s:Header>
<o:Security s:mustUnderstand="1"
xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-
secext-1.0.xsd">
<o:UsernameToken u:Id="uuid-cdf8690a-e56a-4efa-923c-760d22b6748d-7">
<o:Username>username</o:Username>
<o:Password>password</o:Password>
</o:UsernameToken>
</o:Security>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetInsuranceDataF xmlns="http://service.rzzo.rs/">
<req xmlns="">
<lbo/>
<zk>11111111111</zk>
</req>
</GetInsuranceDataF>
</s:Body>
</s:Envelope>
但我无法连接到服务。 请帮忙
答案 0 :(得分:0)
那么,您首先要检查WSDL和/或服务文档,以找出需要的身份验证。
WSDL建议“WSS11”“sp:SignedEncryptedSupportingTokens”,幸运的证书要求似乎已被关闭。
MSDN知道这个方案:http://msdn.microsoft.com/en-us/library/aa738565.aspx
3.1.1 UsernameOverTransport,因此应该受到支持。
设置用户名和密码应该像以下一样简单:
var svc = new SomethingServiceClient(); // your proxy class generated from WSDL
svc.ClientCredentials.UserName.UserName = "someUsername";
svc.ClientCredentials.UserName.Password = "somePassword";
这正是你所说的,所以这很奇怪。
您是否100%确定用户名和密码有效且该帐户未被禁用?既然你得到了合理的回应,我敢打赌这就是问题所在。
如果它是在抱怨一些配置和错配结合,检查您的serviceclient配置(可能会在yourapp.config坐),并确保它具有binding
标签内写入正确的安全类型,例如{{1 }}。但它不抱怨..
您是否100%确定用户名和密码有效且该帐户未被禁用?既然你得到了合理的回答,我敢打赌这就是问题。我只是在错误信息中看到“Token”这个词,我感到很惊讶。也许有一些身份验证令牌要从服务器接收,并且必须在每次身份验证尝试时传回,如http cookie?请尝试查看服务的文档。