WSHttpBinding.AllowCookies Свойство

Определение

Возвращает или задает значение, указывающее, будет ли клиент WCF автоматически хранить и повторно отправлять файлы cookie, отправленные одной веб-службой.

public:
 property bool AllowCookies { bool get(); void set(bool value); };
public bool AllowCookies { get; set; }
member this.AllowCookies : bool with get, set
Public Property AllowCookies As Boolean

Значение свойства

true Значение , если требуется автоматическая обработка файлов cookie; falseв противном случае .

Комментарии

AllowCookies Параметр true полезен, если клиент взаимодействует с одной веб-службой, используюющей файлы cookie. Если вы обращаетесь к нескольким службам с одинаковым файлом cookie, установите AllowCookies значение false и вам придется вручную добавить заголовок cookie в каждое исходящее сообщение. В следующем коде показано, как это сделать:

MyWebServiceClient client = new MyWebServiceClient();

        using (new OperationContextScope(client.InnerChannel))
        {
            client.DoSomething();

            // Extract the cookie embedded in the received web service response
            // and stores it locally
            HttpResponseMessageProperty response = (HttpResponseMessageProperty)
            OperationContext.Current.IncomingMessageProperties[
                HttpResponseMessageProperty.Name];
            sharedCookie = response.Headers["Set-Cookie"];
        }

        MyOtherWebServiceClient otherClient = new MyOtherWebServiceClient();

        using (new OperationContextScope(otherClient.InnerChannel))
        {
            // Embeds the extracted cookie in the next web service request
            // Note that we manually have to create the request object since
            // since it doesn't exist yet at this stage
            HttpRequestMessageProperty request = new HttpRequestMessageProperty();
            request.Headers["Cookie"] = sharedCookie;
            OperationContext.Current.OutgoingMessageProperties[
                HttpRequestMessageProperty.Name] = request;

            otherClient.DoSomethingElse();
        }

Применяется к