Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / Tokens / SecureConversationSecurityTokenParameters.cs / 1 / SecureConversationSecurityTokenParameters.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Security.Tokens { using System.IdentityModel.Tokens; using System.ServiceModel.Channels; using System.IdentityModel.Selectors; using System.ServiceModel; using System.ServiceModel.Security; using System.Text; using System.Globalization; public class SecureConversationSecurityTokenParameters : SecurityTokenParameters { internal const bool defaultRequireCancellation = true; SecurityBindingElement bootstrapSecurityBindingElement; ChannelProtectionRequirements bootstrapProtectionRequirements; bool requireCancellation; BindingContext issuerBindingContext; protected SecureConversationSecurityTokenParameters(SecureConversationSecurityTokenParameters other) : base(other) { this.requireCancellation = other.requireCancellation; if (other.bootstrapSecurityBindingElement != null) this.bootstrapSecurityBindingElement = (SecurityBindingElement)other.bootstrapSecurityBindingElement.Clone(); if (other.bootstrapProtectionRequirements != null) this.bootstrapProtectionRequirements = new ChannelProtectionRequirements(other.bootstrapProtectionRequirements); if (other.issuerBindingContext != null) this.issuerBindingContext = other.issuerBindingContext.Clone(); } public SecureConversationSecurityTokenParameters() : this(null, defaultRequireCancellation, null) { // empty } public SecureConversationSecurityTokenParameters(SecurityBindingElement bootstrapSecurityBindingElement) : this(bootstrapSecurityBindingElement, defaultRequireCancellation, null) { // empty } public SecureConversationSecurityTokenParameters(SecurityBindingElement bootstrapSecurityBindingElement, bool requireCancellation) : this(bootstrapSecurityBindingElement, requireCancellation, null) { // empty } public SecureConversationSecurityTokenParameters(SecurityBindingElement bootstrapSecurityBindingElement, bool requireCancellation, ChannelProtectionRequirements bootstrapProtectionRequirements) : base() { this.bootstrapSecurityBindingElement = bootstrapSecurityBindingElement; if (bootstrapProtectionRequirements != null) this.bootstrapProtectionRequirements = new ChannelProtectionRequirements(bootstrapProtectionRequirements); else { this.bootstrapProtectionRequirements = new ChannelProtectionRequirements(); this.bootstrapProtectionRequirements.IncomingEncryptionParts.AddParts(new MessagePartSpecification(true)); this.bootstrapProtectionRequirements.IncomingSignatureParts.AddParts(new MessagePartSpecification(true)); this.bootstrapProtectionRequirements.OutgoingEncryptionParts.AddParts(new MessagePartSpecification(true)); this.bootstrapProtectionRequirements.OutgoingSignatureParts.AddParts(new MessagePartSpecification(true)); } this.requireCancellation = requireCancellation; } internal protected override bool HasAsymmetricKey { get { return false; } } public SecurityBindingElement BootstrapSecurityBindingElement { get { return this.bootstrapSecurityBindingElement; } set { this.bootstrapSecurityBindingElement = value; } } public ChannelProtectionRequirements BootstrapProtectionRequirements { get { return this.bootstrapProtectionRequirements; } } internal BindingContext IssuerBindingContext { get { return this.issuerBindingContext; } set { if (value != null) { value = value.Clone(); } this.issuerBindingContext = value; } } ISecurityCapabilities BootstrapSecurityCapabilities { get { return this.bootstrapSecurityBindingElement.GetIndividualProperty(); } } public bool RequireCancellation { get { return this.requireCancellation; } set { this.requireCancellation = value; } } internal protected override bool SupportsClientAuthentication { get { return this.BootstrapSecurityCapabilities == null ? false : this.BootstrapSecurityCapabilities.SupportsClientAuthentication; } } internal protected override bool SupportsServerAuthentication { get { return this.BootstrapSecurityCapabilities == null ? false : this.BootstrapSecurityCapabilities.SupportsServerAuthentication; } } internal protected override bool SupportsClientWindowsIdentity { get { return this.BootstrapSecurityCapabilities == null ? false : this.BootstrapSecurityCapabilities.SupportsClientWindowsIdentity; } } protected override SecurityTokenParameters CloneCore() { return new SecureConversationSecurityTokenParameters(this); } internal protected override SecurityKeyIdentifierClause CreateKeyIdentifierClause(SecurityToken token, SecurityTokenReferenceStyle referenceStyle) { if (token is GenericXmlSecurityToken) return base.CreateGenericXmlTokenKeyIdentifierClause(token, referenceStyle); else return this.CreateKeyIdentifierClause (token, referenceStyle); } protected internal override void InitializeSecurityTokenRequirement(SecurityTokenRequirement requirement) { requirement.TokenType = ServiceModelSecurityTokenTypes.SecureConversation; requirement.KeyType = SecurityKeyType.SymmetricKey; requirement.RequireCryptographicToken = true; requirement.Properties[ServiceModelSecurityTokenRequirement.SupportSecurityContextCancellationProperty] = this.RequireCancellation; requirement.Properties[ServiceModelSecurityTokenRequirement.SecureConversationSecurityBindingElementProperty] = this.BootstrapSecurityBindingElement; requirement.Properties[ServiceModelSecurityTokenRequirement.IssuerBindingContextProperty] = this.IssuerBindingContext.Clone(); requirement.Properties[ServiceModelSecurityTokenRequirement.IssuedSecurityTokenParametersProperty] = this.Clone(); } public override string ToString() { StringBuilder sb = new StringBuilder(); sb.AppendLine(base.ToString()); sb.AppendLine(String.Format(CultureInfo.InvariantCulture, "RequireCancellation: {0}", this.requireCancellation.ToString())); if (this.bootstrapSecurityBindingElement == null) { sb.AppendLine(String.Format(CultureInfo.InvariantCulture, "BootstrapSecurityBindingElement: null")); } else { sb.AppendLine(String.Format(CultureInfo.InvariantCulture, "BootstrapSecurityBindingElement:")); sb.AppendLine(" " + this.BootstrapSecurityBindingElement.ToString().Trim().Replace("\n", "\n ")); } return sb.ToString().Trim(); } } } // 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
- Span.cs
- NetworkAddressChange.cs
- StyleBamlRecordReader.cs
- BitmapEffectState.cs
- NCryptNative.cs
- SwitchAttribute.cs
- TdsParserHelperClasses.cs
- FeatureAttribute.cs
- ContainerUIElement3D.cs
- CodeDelegateCreateExpression.cs
- XamlTemplateSerializer.cs
- ExpandCollapsePattern.cs
- XmlSerializerNamespaces.cs
- GatewayIPAddressInformationCollection.cs
- SerialStream.cs
- DataBindingCollectionEditor.cs
- WebPageTraceListener.cs
- XmlSchemaSet.cs
- BackStopAuthenticationModule.cs
- WebHttpBindingElement.cs
- DataGridViewSelectedColumnCollection.cs
- SqlBooleanizer.cs
- QilGenerator.cs
- AssemblyAttributes.cs
- IssuedTokenClientCredential.cs
- StructuredTypeEmitter.cs
- Emitter.cs
- DesignerVerbToolStripMenuItem.cs
- Pen.cs
- OracleConnectionFactory.cs
- QueryExpr.cs
- HttpRequest.cs
- TypeConverterHelper.cs
- ParameterReplacerVisitor.cs
- StylusEditingBehavior.cs
- TraceHwndHost.cs
- COM2PropertyDescriptor.cs
- PaintValueEventArgs.cs
- X509IssuerSerialKeyIdentifierClause.cs
- XmlNavigatorStack.cs
- KerberosReceiverSecurityToken.cs
- AdornerLayer.cs
- TypeDescriptionProvider.cs
- Peer.cs
- SizeConverter.cs
- NotFiniteNumberException.cs
- _ConnectionGroup.cs
- Expressions.cs
- UInt32Converter.cs
- XmlLanguageConverter.cs
- RubberbandSelector.cs
- FactoryRecord.cs
- HtmlInputFile.cs
- TimeSpanConverter.cs
- ResourceAssociationSet.cs
- DataTableMappingCollection.cs
- ToolStripDropDownItem.cs
- TreeWalker.cs
- ModulesEntry.cs
- SpeechEvent.cs
- AssemblyAttributes.cs
- RC2CryptoServiceProvider.cs
- RefExpr.cs
- SByteConverter.cs
- PagedDataSource.cs
- StructureChangedEventArgs.cs
- CompositeControl.cs
- AssociationSet.cs
- CompositeActivityMarkupSerializer.cs
- Point3DIndependentAnimationStorage.cs
- HttpWebRequestElement.cs
- FacetEnabledSchemaElement.cs
- SignatureHelper.cs
- MembershipUser.cs
- XamlContextStack.cs
- NeutralResourcesLanguageAttribute.cs
- ObjectParameterCollection.cs
- TemplateBindingExpression.cs
- MembershipValidatePasswordEventArgs.cs
- EntityCommandDefinition.cs
- SequenceDesigner.cs
- SiteMapNodeItem.cs
- DateTimeValueSerializerContext.cs
- DataBoundControlDesigner.cs
- SortDescription.cs
- TextRange.cs
- Literal.cs
- DataGridViewBand.cs
- BitmapPalette.cs
- ClassValidator.cs
- EventSinkHelperWriter.cs
- DataControlButton.cs
- StatusBarPanel.cs
- EditableRegion.cs
- ApplicationActivator.cs
- BaseDataList.cs
- EpmTargetPathSegment.cs
- Menu.cs
- WeakEventTable.cs
- StreamSecurityUpgradeAcceptor.cs