Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Configuration / SecurityElement.cs / 1 / SecurityElement.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Configuration
{
using System.ComponentModel;
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.Configuration;
using System.Globalization;
using System.Net.Security;
using System.ServiceModel.Security;
using System.ServiceModel.Security.Tokens;
using System.Runtime.Remoting.Messaging;
using System.Xml;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.IO;
public sealed partial class SecurityElement : SecurityElementBase
{
public SecurityElement()
{
}
[ConfigurationProperty(ConfigurationStrings.SecureConversationBootstrap)]
public SecurityElementBase SecureConversationBootstrap
{
get { return (SecurityElementBase)base[ConfigurationStrings.SecureConversationBootstrap]; }
}
public override void CopyFrom(ServiceModelExtensionElement from)
{
base.CopyFrom(from);
SecurityElement source = (SecurityElement)from;
#pragma warning suppress 56506 //[....]; base.CopyFrom() checks for 'from' being null
if (PropertyValueOrigin.Default != source.ElementInformation.Properties[ConfigurationStrings.SecureConversationBootstrap].ValueOrigin)
this.SecureConversationBootstrap.CopyFrom(source.SecureConversationBootstrap);
}
protected internal override BindingElement CreateBindingElement(bool createTemplateOnly)
{
SecurityBindingElement result;
if (this.AuthenticationMode == AuthenticationMode.SecureConversation)
{
if (this.SecureConversationBootstrap == null)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SecureConversationNeedsBootstrapSecurity)));
if (this.SecureConversationBootstrap.AuthenticationMode == AuthenticationMode.SecureConversation)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.SecureConversationBootstrapCannotUseSecureConversation)));
SecurityBindingElement bootstrapSecurity = (SecurityBindingElement)this.SecureConversationBootstrap.CreateBindingElement(createTemplateOnly);
result = SecurityBindingElement.CreateSecureConversationBindingElement(bootstrapSecurity, this.RequireSecurityContextCancellation);
}
else
{
result = (SecurityBindingElement)base.CreateBindingElement(createTemplateOnly);
}
this.ApplyConfiguration(result);
return result;
}
protected override void AddBindingTemplates(Dictionary bindingTemplates)
{
base.AddBindingTemplates(bindingTemplates);
AddBindingTemplate(bindingTemplates, AuthenticationMode.SecureConversation);
}
void InitializeSecureConversationParameters(SecureConversationSecurityTokenParameters sc, bool initializeNestedBindings)
{
this.RequireSecurityContextCancellation = sc.RequireCancellation;
if (sc.BootstrapSecurityBindingElement != null)
{
this.SecureConversationBootstrap.InitializeFrom(sc.BootstrapSecurityBindingElement, initializeNestedBindings);
}
}
protected override void InitializeNestedTokenParameterSettings(SecurityTokenParameters sp, bool initializeNestedBindings)
{
if (sp is SecureConversationSecurityTokenParameters)
this.InitializeSecureConversationParameters((SecureConversationSecurityTokenParameters)sp, initializeNestedBindings);
else
base.InitializeNestedTokenParameterSettings(sp, initializeNestedBindings);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ArrayList.cs
- HtmlEmptyTagControlBuilder.cs
- MetadataItemEmitter.cs
- DataGridViewLinkCell.cs
- Connector.cs
- RijndaelManaged.cs
- UnsafeNetInfoNativeMethods.cs
- SqlDataReader.cs
- ClientSponsor.cs
- DefaultHttpHandler.cs
- SQLInt32Storage.cs
- FormattedText.cs
- BitmapCacheBrush.cs
- WebException.cs
- KnowledgeBase.cs
- SpecialNameAttribute.cs
- XNodeNavigator.cs
- TableRowsCollectionEditor.cs
- Propagator.ExtentPlaceholderCreator.cs
- PingReply.cs
- SmtpMail.cs
- SchemaConstraints.cs
- WebPartTracker.cs
- CompositeCollectionView.cs
- RangeValidator.cs
- WSSecurityTokenSerializer.cs
- WmpBitmapEncoder.cs
- EventLogEntryCollection.cs
- UpdateRecord.cs
- OdbcConnectionFactory.cs
- LoginView.cs
- XamlStream.cs
- ImageDrawing.cs
- RangeContentEnumerator.cs
- FontClient.cs
- Substitution.cs
- TypefaceCollection.cs
- WebPartsSection.cs
- ArglessEventHandlerProxy.cs
- WebPartActionVerb.cs
- GridErrorDlg.cs
- RegisteredArrayDeclaration.cs
- RelatedCurrencyManager.cs
- ObjectHelper.cs
- RenderOptions.cs
- MetaForeignKeyColumn.cs
- ValueType.cs
- IdentifierService.cs
- PolyLineSegment.cs
- ConnectionsZone.cs
- CompositionAdorner.cs
- PageSettings.cs
- HttpRawResponse.cs
- dataprotectionpermission.cs
- ListBoxItem.cs
- IODescriptionAttribute.cs
- X509SubjectKeyIdentifierClause.cs
- FileDialogCustomPlace.cs
- SubqueryRules.cs
- WindowsIPAddress.cs
- Span.cs
- BitmapEffect.cs
- QuotedPrintableStream.cs
- TemplateBaseAction.cs
- SpecialNameAttribute.cs
- PersonalizationProvider.cs
- StackOverflowException.cs
- WebPartEventArgs.cs
- PointF.cs
- WindowsFormsDesignerOptionService.cs
- HttpRequestTraceRecord.cs
- FocusManager.cs
- InternalConfigConfigurationFactory.cs
- ValidationEventArgs.cs
- CompModSwitches.cs
- XmlEncoding.cs
- ValidationSummary.cs
- CompiledXpathExpr.cs
- VScrollBar.cs
- SchemaImporterExtensionElement.cs
- GridPattern.cs
- XmlNodeComparer.cs
- DbProviderSpecificTypePropertyAttribute.cs
- PropertyKey.cs
- ScriptingWebServicesSectionGroup.cs
- MarkupExtensionParser.cs
- Method.cs
- Identifier.cs
- PrimitiveSchema.cs
- XmlSiteMapProvider.cs
- ConnectionStringEditor.cs
- figurelength.cs
- ObjectAnimationUsingKeyFrames.cs
- MetaColumn.cs
- HtmlInputControl.cs
- HelpProvider.cs
- SerializationFieldInfo.cs
- MaterialGroup.cs
- SqlClientWrapperSmiStreamChars.cs
- InputScopeManager.cs