|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Configuration
{
using System;
using System.Configuration;
using System.Runtime.CompilerServices;
using System.ServiceModel.Channels;
[TypeForwardedFrom("System.WorkflowServices, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")]
public partial class BasicHttpContextBindingElement : BasicHttpBindingElement
{
const string ContextManagementEnabledName = ContextBindingElementExtensionElement.ContextManagementEnabledName;
public BasicHttpContextBindingElement()
: base()
{
}
public BasicHttpContextBindingElement(string name)
: base(name)
{
}
protected override Type BindingElementType
{
get { return typeof(BasicHttpContextBinding); }
}
[ConfigurationProperty(ContextManagementEnabledName, DefaultValue = ContextBindingElement.DefaultContextManagementEnabled)]
public bool ContextManagementEnabled
{
get { return (bool)base[ContextManagementEnabledName]; }
set { base[ContextManagementEnabledName] = value; }
}
protected internal override void InitializeFrom(Binding binding)
{
base.InitializeFrom(binding);
BasicHttpContextBinding basicHttpContextBinding = (BasicHttpContextBinding)binding;
SetPropertyValueIfNotDefaultValue(BasicHttpContextBindingElement.ContextManagementEnabledName, basicHttpContextBinding.ContextManagementEnabled);
}
internal override void InitializeAllowCookies(HttpBindingBase binding)
{
// do not emit allowCookies=true in generated config because BasicHttpContextBinding will always set AllowCookies to true anyway
}
protected override void OnApplyConfiguration(Binding binding)
{
base.OnApplyConfiguration(binding);
if (this.ElementInformation.Properties["allowCookies"].ValueOrigin == PropertyValueOrigin.Default)
{
((BasicHttpBinding) binding).AllowCookies = true;
}
else if (!this.AllowCookies)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.GetString(SR.BasicHttpContextBindingRequiresAllowCookie, this.Name, ""));
}
((BasicHttpContextBinding)binding).ContextManagementEnabled = this.ContextManagementEnabled;
}
}
}
|