C# 来自WSDL的.NET webservice客户端
我有一个WSDL,从中我生成了MyService的实现C# 来自WSDL的.NET webservice客户端,c#,web-services,C#,Web Services,我有一个WSDL,从中我生成了MyService的实现 function void updateData(Data data){ BasicHttpBinding binding = new BasicHttpBinding(); // see there is naked username and password. EndpointAddress address = new EndpointAddress("http://qa.farwaha.co
function void updateData(Data data){
BasicHttpBinding binding = new BasicHttpBinding();
// see there is naked username and password.
EndpointAddress address = new EndpointAddress("http://qa.farwaha.com/eai_enu/start.swe?SWEExtSource=WebService&SWEExtCmd=Execute&UserName=john&Password=johspassword");
MyService service = new MyService(binding, address);
try{
service.update(data);
}finally{
service.close();
}
}
不幸的是,要调用此web服务,我必须传递用户名和密码,如代码所示。所以,我的问题是关于最佳实践
考虑到这是一个Winform应用程序
这是一个示例代码,我有一个用户对象,它将密码存储在SecureString中,每次我都要访问密码;我在一个实例私有方法中从SecureString获取字符串,快速使用它并让它被垃圾收集。我相信,若我使用上述方法,它将是安全的或足够安全的,而不是坚持服务的参考,你们有什么建议对于您的具体问题:
中,以调用Dispose模式并进行确定性清理。有关示例,请参见Codeplex上的my
希望这能有所帮助。您描述的情况似乎有点不正确。使用查询字符串中的值(用户名、密码等)调用服务似乎适合基于REST的服务。您说您正在调用的服务正在提供WSDL,因此它似乎是一个基于soap的服务。不能同时使用这两种调用方案,因为soap服务只能访问soap信封中的任何内容,而忽略查询字符串值。你能澄清一下这是否真的是一个基于soap的服务吗?谢谢@这实际上是一个基于SOAP的web服务。我会核实你的建议,这是有道理的。感谢您的输入。您应该重新考虑在“使用”中包装您的客户端对象。这篇文章很好地解释了为什么你不应该: