Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / SessionSymmetricMessageSecurityProtocolFactory.cs / 1 / SessionSymmetricMessageSecurityProtocolFactory.cs
//---------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Security { using System.IdentityModel.Tokens; using System.ServiceModel.Channels; using System.ServiceModel; using System.IdentityModel.Selectors; using System.ServiceModel.Security.Tokens; class SessionSymmetricMessageSecurityProtocolFactory : MessageSecurityProtocolFactory { SecurityTokenParameters securityTokenParameters; SessionDerivedKeySecurityTokenParameters derivedKeyTokenParameters; public SessionSymmetricMessageSecurityProtocolFactory() : base() { } public SecurityTokenParameters SecurityTokenParameters { get { return this.securityTokenParameters; } set { ThrowIfImmutable(); this.securityTokenParameters = value; } } public override EndpointIdentity GetIdentityOfSelf() { if (this.SecurityTokenManager is IEndpointIdentityProvider) { SecurityTokenRequirement requirement = CreateRecipientSecurityTokenRequirement(); this.SecurityTokenParameters.InitializeSecurityTokenRequirement(requirement); return ((IEndpointIdentityProvider)this.SecurityTokenManager).GetIdentityOfSelf(requirement); } else { return base.GetIdentityOfSelf(); } } protected override SecurityProtocol OnCreateSecurityProtocol(EndpointAddress target, Uri via, object listenerSecurityState, TimeSpan timeout) { if (this.ActAsInitiator) { return new InitiatorSessionSymmetricMessageSecurityProtocol(this, target, via); } else { return new AcceptorSessionSymmetricMessageSecurityProtocol(this, null); } } public override void OnOpen(TimeSpan timeout) { if (this.SecurityTokenParameters == null) { OnPropertySettingsError("SecurityTokenParameters", true); } if (this.SecurityTokenParameters.RequireDerivedKeys) { this.ExpectKeyDerivation = true; this.derivedKeyTokenParameters = new SessionDerivedKeySecurityTokenParameters(this.ActAsInitiator); } base.OnOpen(timeout); } internal SecurityTokenParameters GetTokenParameters() { if (this.derivedKeyTokenParameters != null) { return this.derivedKeyTokenParameters; } else { return this.securityTokenParameters; } } } internal class SessionDerivedKeySecurityTokenParameters : SecurityTokenParameters { bool actAsInitiator; protected SessionDerivedKeySecurityTokenParameters(SessionDerivedKeySecurityTokenParameters other) : base(other) { this.actAsInitiator = other.actAsInitiator; } public SessionDerivedKeySecurityTokenParameters(bool actAsInitiator) : base() { this.actAsInitiator = actAsInitiator; this.InclusionMode = actAsInitiator ? SecurityTokenInclusionMode.AlwaysToRecipient : SecurityTokenInclusionMode.AlwaysToInitiator; base.RequireDerivedKeys = false; } internal protected override bool SupportsClientAuthentication { get { return false; } } internal protected override bool SupportsServerAuthentication { get { return false; } } internal protected override bool SupportsClientWindowsIdentity { get { return false; } } internal protected override bool HasAsymmetricKey { get { return false; } } protected override SecurityTokenParameters CloneCore() { return new SessionDerivedKeySecurityTokenParameters(this); } internal protected override SecurityKeyIdentifierClause CreateKeyIdentifierClause(SecurityToken token, SecurityTokenReferenceStyle referenceStyle) { if (referenceStyle == SecurityTokenReferenceStyle.Internal) { return token.CreateKeyIdentifierClause(); } else { return null; } } internal protected override bool MatchesKeyIdentifierClause(SecurityToken token, SecurityKeyIdentifierClause keyIdentifierClause, SecurityTokenReferenceStyle referenceStyle) { if (referenceStyle == SecurityTokenReferenceStyle.Internal) { LocalIdKeyIdentifierClause localClause = keyIdentifierClause as LocalIdKeyIdentifierClause; if (localClause == null) { return false; } else { return (localClause.LocalId == token.Id); } } else { return false; } } protected internal override void InitializeSecurityTokenRequirement(SecurityTokenRequirement requirement) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException()); } } } // 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
- FunctionQuery.cs
- FontUnitConverter.cs
- LocalizableAttribute.cs
- WebPartEditorApplyVerb.cs
- EncoderExceptionFallback.cs
- TextBox.cs
- Serializer.cs
- RsaSecurityKey.cs
- XmlCodeExporter.cs
- ToolStripDesigner.cs
- EventDescriptor.cs
- LocationReferenceValue.cs
- LogRecordSequence.cs
- PrimitiveType.cs
- GatewayDefinition.cs
- GACMembershipCondition.cs
- HttpRequestTraceRecord.cs
- SeparatorAutomationPeer.cs
- ProvideValueServiceProvider.cs
- TransformerTypeCollection.cs
- CodeTypeMember.cs
- NonBatchDirectoryCompiler.cs
- FontUnit.cs
- TypeReference.cs
- CategoryAttribute.cs
- ToolStripHighContrastRenderer.cs
- ellipse.cs
- QilGeneratorEnv.cs
- ModelItem.cs
- VisemeEventArgs.cs
- DBPropSet.cs
- ApplicationServiceHelper.cs
- Bidi.cs
- Style.cs
- GenericTextProperties.cs
- ProgramNode.cs
- SafeNativeMethods.cs
- ImageAutomationPeer.cs
- NativeMethods.cs
- IdnMapping.cs
- GradientPanel.cs
- OptimalBreakSession.cs
- TextServicesContext.cs
- TemplatedAdorner.cs
- XamlTypeMapperSchemaContext.cs
- FirewallWrapper.cs
- TextOutput.cs
- QilLiteral.cs
- NewArrayExpression.cs
- HyperlinkAutomationPeer.cs
- ReliableChannelFactory.cs
- ServiceModelConfigurationSectionGroup.cs
- StaticTextPointer.cs
- SystemEvents.cs
- columnmapfactory.cs
- MachinePropertyVariants.cs
- SR.cs
- XmlSchemaSimpleContentExtension.cs
- GrammarBuilderRuleRef.cs
- VerticalConnector.xaml.cs
- MatrixConverter.cs
- PropertyChangedEventManager.cs
- ListBoxAutomationPeer.cs
- ItemCheckedEvent.cs
- MessageEncoder.cs
- DispatchChannelSink.cs
- RemoteWebConfigurationHost.cs
- GridViewColumnHeader.cs
- OpenTypeLayoutCache.cs
- DateTimeFormatInfo.cs
- XslAst.cs
- WindowsProgressbar.cs
- CmsInterop.cs
- DetailsViewPagerRow.cs
- BamlTreeMap.cs
- SafeFileMapViewHandle.cs
- VirtualizingPanel.cs
- MediaTimeline.cs
- EventSchemaTraceListener.cs
- SamlSubjectStatement.cs
- BinaryNode.cs
- WebRequestModulesSection.cs
- DispatchWrapper.cs
- DialogResultConverter.cs
- Decorator.cs
- TemplateComponentConnector.cs
- CodeBlockBuilder.cs
- TriState.cs
- EntityContainer.cs
- HwndAppCommandInputProvider.cs
- IWorkflowDebuggerService.cs
- StreamInfo.cs
- XPathDocument.cs
- IdentityReference.cs
- MembershipSection.cs
- LogLogRecordEnumerator.cs
- SharedPerformanceCounter.cs
- clipboard.cs
- MouseActionValueSerializer.cs
- DataSourceCacheDurationConverter.cs