HttpWebClientProtocol.CookieContainer HttpWebClientProtocol.CookieContainer HttpWebClientProtocol.CookieContainer HttpWebClientProtocol.CookieContainer Property

定義

クッキーのコレクションを取得または設定します。Gets or sets the collection of cookies.

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

プロパティ値

Web サービス クライアントのクッキーを表す CookieContainerA CookieContainer that represents the cookies for a Web Services client.

次のコード例は、セッション状態を使用する XML Web サービスの Web フォームクライアントです。The following code example is a Web Forms client of an XML Web service that uses session state. クライアントは、クライアントのセッション状態に格納することによって、セッションを一意に識別する HTTP クッキーを格納します。The client stores the HTTP cookie that uniquely identifies the session by storing it in the client's session state.

<%@ 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 サービスクライアントに、応答ヘッダーからクッキーが返されます。If an XML Web service method uses session state, then a cookie is passed back in the response headers to the XML Web service client that uniquely identifies the session for that XML Web service client. XML Web サービスがクライアントのセッション状態を維持するためには、クライアントに cookie を格納する必要があります。In order for an XML Web service to maintain session state for a client, the client must store the cookie. クライアントは、のCookieContainer新しいインスタンスを作成し、それをプロキシクラスのCookieContainerプロパティに割り当てて、XML Web サービスメソッドを呼び出す前に、HTTP クッキーを受け取ります。Clients receive the HTTP cookie by creating a new instance of CookieContainer and assigning that to the CookieContainer property of the proxy class before calling the XML Web service method. プロキシクラスのインスタンスがスコープ外になったときに、セッション状態を維持する必要がある場合、クライアントは XML Web サービスの呼び出しの間に HTTP クッキーを格納する必要があります。If you need to maintain session state beyond when the proxy class instance goes out of scope, the client must store the HTTP cookie between calls to the XML Web service. たとえば、Web フォームクライアントは、独自のセッション状態でを保存するCookieContainerことによって、HTTP クッキーを格納できます。For instance, a Web Forms client can store the HTTP cookie by saving the CookieContainer in its own session state. すべての xml web サービスでセッション状態が使用されるわけではないため、クライアントCookieContainerがクライアントプロキシのプロパティを使用する必要があるとは限りません。そのため、xml web サービスのドキュメントでは、セッション状態が使用されているかどうかを指定する必要があります。Because not all XML Web services use session state and thus clients are not always required to use the CookieContainer property of a client proxy, the documentation for the XML Web service must state whether session state is used.

適用対象

こちらもご覧ください