我在我的.net类中使用了一个外部安全服务,方法是对它进行web引用,并将用户名令牌传递给它,如下所示:
MyWebService objWS = new MyWebService();
UsernameToken token = new UsernameToken("User","Password", PasswordOption.SendPlainText);
objWS.RequestSoapContext.Security.Timestamp.TtlInSeconds = 60;
objWS.RequestSoapContext.Security.Tokens.Add(token);
objWS.RequestSoapContext.Security.MustUnderstand = false;当我对相同的服务url进行服务引用并尝试使用ClientCredentials传入用户名和密码时,它失败了。
我对外部服务一无所知。你知道会出什么问题吗?
谢谢你的时间..。
发布于 2010-10-14 19:13:49
解决方案是在生成的代理中安装继承自Microsoft.Web.Services3.WebServicesClientProtocol而不是默认System.Web.Services.Protocols.SoapHttpClientProtocol.的WSE3
然后,服务代理对象将获得Security属性。
objWS.RequestSoapContext.Security然后我可以用它在UsernameToken中传递。
这是一个技巧,我还没有找到更好的方法。重新生成代理总是涉及必须再次手动编辑代理的额外步骤,如上所述。
发布于 2010-09-23 11:47:09
您是否通过https调用该服务?服务器可能需要客户端证书。我找到了这个示例用法。UsernameToken
https://stackoverflow.com/questions/3775233
复制相似问题