1

以下のコードを使用してセッションを再利用しています。

grabUrl応答Cookieで同じセッションIDを取得しますか?

両方のリクエストが同じセッション/Cookieを使用しているかどうかを確認するにはどうすればよいですか?

ありがとう。

CookieContainer cookCon = new CookieContainer();

Httpwebrequest loginReq = (httpwebrequest) loginReq.create(loginurl);

loginReq.cookiecontainer = cookCon;

... All the response stuffs

Httpwebrequest grabReq = (httpwebrequest) grabReq.create(grabUrl);

grabUrl.cookiecontainer = cookCon

以下のコードを追加してコンテナの内容を確認すると、セッションIDがあることがわかります。

        foreach (Cookie cook in cookieContainer.GetCookies(new Uri(loginurl)))
        {
            Console.WriteLine("Cookie_Get_Container:");
            Console.WriteLine("====================================================");
            Console.WriteLine("String: {0}", cook.ToString());
            Console.WriteLine("====================================================");
        }

そこで、ログイン応答にCookieを追加しました。

cookieContainer.Add(new Uri(domainUrl), loginRes.Cookies);

cookieContainer.grabRes.Cookiesから取得しようとすると、セッションIDを取得できません。何かアドバイスはありますか?

4

1 に答える 1

0

最初の応答からセッションCookieを取得するコードを表示していないので、表示されていないと思います。答えは「いいえ、2番目の要求に対して新しいセッションが作成されます」です。

最初の応答からセッションID(およびその他)を取得し、それらを新しい要求に設定します(つまり、コンテナーに追加します)。

補足:認証方法によっては、次のリクエストを認証するための情報(セッションIDとは異なる)がCookieに含まれない場合があります。

于 2012-11-23T05:16:43.153 に答える