0

私は、SOAPクライアントを使用してWebサービスが.NETに実装されているWPアプリケーションを開発しています。「サービス参照の追加」オプションを使用して、WPアプリにSOAPクライアントを実装しました。

ここで問題となるのは、ログイン機能用と他のすべてのクエリ用の2つの異なるクライアントクラスがあることです。ログインは正常に機能しており、trueまたはfalseを返し、他には何も返されません。また、他のクライアントクラスは、すべて正常に機能し、サーバーからデータを取得するさまざまなクエリを作成するために使用されます。テスト後、応答がログインユーザーとは無関係であることがわかりました(つまり、サーバーはログインユーザーとは無関係に同じデータを送信します)。したがって、セッションが維持されておらず、サーバーが匿名データを送信していることは明らかです。

誰かがSOAPクライアントでセッションを維持する方法について私を助けてくれます。

注:これについては、Webサービスプロバイダーに問い合わせることはできません。:(

4

1 に答える 1

2

最後に、WindowsPhoneアプリでCookieベースのセッションを維持する方法を見つけました

マイクの指導に感謝します。

WPアプリでセッションを維持するさまざまな方法について疑問に思っているすべての人のために、CookieContainerCookieデータを維持するのに役立つと呼ばれるクラスがあります。

使用法:

まず、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クラスにも適用されます。

ハッピーコーディング:)

于 2012-08-21T15:09:39.823 に答える