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
.
Комментарии
true
Этот параметр AllowCookies полезен, если клиент взаимодействует с одной веб-службой, используюющей файлы 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();
}