在SOAP客户端中实现会话

我正在开发一个WP应用程序,使用SOAP客户端在.NET中实现web服务。 我使用“添加服务引用”选项在我的WP应用程序中实现了SOAP客户端。

现在的问题是,有两个不同的客户端类,一个用于登录function,另一个用于所有其他查询。 登录工作正常,返回我的真假,没有别的。 另一个客户端类用于进行不同的查询,这些查询都可以正常工作并从服务器获取一些数据。 在测试之后,我观察到响应独立于登录用户(即服务器发送与登录用户无关的相同数据)。 因此很明显,会话未得到维护,服务器正在发送一些匿名数据。

有人帮助我如何在SOAP客户端中维护会话。

注意:我不能向网络服务提供商询问此问题。 🙁

最后,我想出了如何在Windows手机应用程序中维护基于cookie的会话

感谢Mike的指导。

对于那些想知道在WP应用程序中维护会话的不同方法的人,有一个名为CookieContainer的类,它有助于为我们维护cookie数据。

用法:

首先创建一个CookieContainer类的全局实例(我在App.xaml.cs中创建)

 //In App.xaml.cs CookieContainer cookieContainer = new CookieContainer(); 

然后将它分配给我们从应用程序向服务器发出的每个请求。

 MySoapClient client = new MySoapClient(); client.CookieContainer = (App.Current as App).cookieContainer; client.LoginAsync("username", "password"); 

再次为应用程序中的任何其他请求

 MyOtherSoapClient anotherClient = new MyOtherSoapClient(); anotherClient.CookieContainer = (App.Current as App).cookieContainer; anotherClient.PostDataAsync("somedata"); 

同样的规则也适用于普通的WebClientHttpWebRequest类。

快乐编码:)