HttpWebClientProtocol.CookieContainer プロパティ

定義

クッキーのコレクションを取得または設定します。

public:
 property System::Net::CookieContainer ^ CookieContainer { System::Net::CookieContainer ^ get(); void set(System::Net::CookieContainer ^ value); };
public System.Net.CookieContainer CookieContainer { get; set; }
member this.CookieContainer : System.Net.CookieContainer with get, set
Public Property CookieContainer As CookieContainer

プロパティ値

CookieContainer

Web サービス クライアントのクッキーを表す CookieContainer

次のコード例は、セッション状態を使用する XML Web サービスの Web Forms クライアントです。 クライアントは、クライアントのセッション状態に格納することによって、セッションを一意に識別する HTTP クッキーを格納します。

<%@ Page Language="C#" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Net" %>

<html>

    <script runat="server">

        void EnterBtn_Click(Object Src, EventArgs E) 
    {
      // Create a new instance of a proxy class for your XML Web service.
      ServerUsage su = new ServerUsage();
          CookieContainer cookieJar;

      // Check to see if the cookies have already been saved for this session.
      if (Session["CookieJar"] == null) 
        cookieJar= new CookieContainer();
          else
       cookieJar = (CookieContainer) Session["CookieJar"];

        // Assign the CookieContainer to the proxy class.
        su.CookieContainer = cookieJar;

      // Invoke an XML Web service method that uses session state and thus cookies.
      int count = su.PerSessionServiceUsage();         

      // Store the cookies received in the session state for future retrieval by this session.
      Session["CookieJar"] = cookieJar;

          // Populate the text box with the results from the call to the XML Web service method.
          SessionCount.Text = count.ToString();  
        }
         
    </script>
    <body>
       <form runat=server ID="Form1">
           
             Click to bump up the Session Counter.
             <p>
             <asp:button text="Bump Up Counter" Onclick="EnterBtn_Click" runat=server ID="Button1" NAME="Button1"/>
             <p>
             <asp:label id="SessionCount"  runat=server/>
          
       </form>
    </body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Net" %>

<html>

    <script runat=server>

        Public Sub EnterBtn_Click(src As Object, E As EventArgs) 

      ' Create a new instance of a proxy class for your XML Web service.
      Dim su As ServerUsage = new ServerUsage()
          Dim cookieJar As CookieContainer

      ' Check to see if the cookies have already been saved for this session.
      If (Session("CookieJar") Is Nothing) 
        cookieJar= new CookieContainer()
          Else
       cookieJar = Session("CookieJar")
      End If
   

        ' Assign the CookieContainer to the proxy class.
        su.CookieContainer = cookieJar

      ' Invoke an XML Web service method that uses session state and thus cookies.
      Dim count As Integer = su.PerSessionServiceUsage()         

      ' Store the cookies received in the session state for future retrieval by this session.
      Session("CookieJar") = cookieJar

          ' Populate the text box with the results from the call to the XML Web service method.
          SessionCount.Text = count.ToString()  
    End Sub
         
    </script>
    <body>
       <form runat=server ID="Form1">
           
             Click to bump up the Session Counter.
             <p>
             <asp:button text="Bump Up Counter" Onclick="EnterBtn_Click" runat=server ID="Button1" NAME="Button1"/>
             <p>
             <asp:label id="SessionCount"  runat=server/>
          
       </form>
    </body>
</html>

注釈

XML Web サービスメソッドでセッション状態が使用されている場合、その XML web サービスクライアントのセッションを一意に識別する XML Web サービスクライアントに、応答ヘッダーからクッキーが返されます。 XML Web サービスがクライアントのセッション状態を維持するためには、クライアントに cookie を格納する必要があります。 クライアントは、の新しいインスタンスを作成 CookieContainer し、それを CookieContainer プロキシクラスのプロパティに割り当てて、XML Web サービスメソッドを呼び出す前に、HTTP クッキーを受け取ります。 プロキシクラスのインスタンスがスコープ外になったときに、セッション状態を維持する必要がある場合、クライアントは XML Web サービスの呼び出しの間に HTTP クッキーを格納する必要があります。 たとえば、Web Forms クライアントは、を独自のセッション状態に保存することによって、HTTP クッキーを格納でき CookieContainer ます。 すべての XML Web サービスでセッション状態が使用されるわけではないため、クライアントがクライアントプロキシのプロパティを使用する必要があるとは限りません。そのため、 CookieContainer Xml web サービスのドキュメントでは、セッション状態が使用されているかどうかを指定する必要があります。

適用対象

こちらもご覧ください