Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / TransactionBridge / Microsoft / Transactions / Wsat / Messaging / CustomServiceCredentials.cs / 1 / CustomServiceCredentials.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- // Override ServiceCredentials to provide a custom token authenticator using System; using System.Collections.Generic; using System.Diagnostics; using System.IdentityModel.Selectors; using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Description; using System.ServiceModel.Security; using System.ServiceModel.Security.Tokens; using System.Threading; using DiagnosticUtility = Microsoft.Transactions.Bridge.DiagnosticUtility; namespace Microsoft.Transactions.Wsat.Messaging { class SupportingTokenServiceCredentials : ServiceCredentials { SupportingTokenSecurityTokenResolver tokenResolver; SecurityContextSecurityTokenAuthenticator tokenAuthenticator; public SupportingTokenServiceCredentials() { this.tokenResolver = new SupportingTokenSecurityTokenResolver(); this.tokenAuthenticator = new SecurityContextSecurityTokenAuthenticator(); } SupportingTokenServiceCredentials(SupportingTokenServiceCredentials other) : base(other) { this.tokenResolver = other.tokenResolver; this.tokenAuthenticator = other.tokenAuthenticator; } public SupportingTokenSecurityTokenResolver TokenResolver { get { return this.tokenResolver; } } public override SecurityTokenManager CreateSecurityTokenManager() { return new SupportingTokenSecurityTokenManager(this); } protected override ServiceCredentials CloneCore() { return new SupportingTokenServiceCredentials(this); } class SupportingTokenSecurityTokenManager : ServiceCredentialsSecurityTokenManager { SupportingTokenServiceCredentials serverCreds; public SupportingTokenSecurityTokenManager(SupportingTokenServiceCredentials serverCreds) : base(serverCreds) { this.serverCreds = serverCreds; } public override SecurityTokenAuthenticator CreateSecurityTokenAuthenticator(SecurityTokenRequirement tokenRequirement, out SecurityTokenResolver outOfBandTokenResolver) { if (tokenRequirement == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("tokenRequirement"); } if (tokenRequirement.TokenType == ServiceModelSecurityTokenTypes.SecurityContext) { if (DebugTrace.Verbose) DebugTrace.Trace(TraceLevel.Verbose, "CreateSecurityTokenAuthenticator for SecurityContext"); outOfBandTokenResolver = this.serverCreds.tokenResolver; return this.serverCreds.tokenAuthenticator; } else { return base.CreateSecurityTokenAuthenticator(tokenRequirement, out outOfBandTokenResolver); } } // Transactions does not need an identity to be specified in the EPR. public override EndpointIdentity GetIdentityOfSelf(SecurityTokenRequirement tokenRequirement) { return null; } } } // ServiceCredentialsTokenManager defined in ServiceModel will default to // creating a X509CertificateIdentity when no endpoint identity is specified // but while a service certificate is specified. Transactions does not need // identity in the EPR. In order to avoid the performance hit in serializing // a Certificate in the EPR we are providing a custom token manager that // will return a null Identity from GetIdentityOfSelf. class DefaultServiceCredentials : ServiceCredentials { public DefaultServiceCredentials() : base() { } public DefaultServiceCredentials(DefaultServiceCredentials other) : base(other) { } public override SecurityTokenManager CreateSecurityTokenManager() { return new DefaultSecurityTokenManager(this); } protected override ServiceCredentials CloneCore() { return new DefaultServiceCredentials(this); } class DefaultSecurityTokenManager : ServiceCredentialsSecurityTokenManager { DefaultServiceCredentials serverCreds; public DefaultSecurityTokenManager(DefaultServiceCredentials serverCreds) : base(serverCreds) { this.serverCreds = serverCreds; } public override EndpointIdentity GetIdentityOfSelf(SecurityTokenRequirement tokenRequirement) { return null; } } } } // 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
- BooleanAnimationUsingKeyFrames.cs
- ConversionHelper.cs
- AddInEnvironment.cs
- HitTestDrawingContextWalker.cs
- BinaryParser.cs
- BinaryParser.cs
- Message.cs
- TextStore.cs
- DbProviderFactory.cs
- ConfigXmlDocument.cs
- RsaEndpointIdentity.cs
- NameTable.cs
- DbConnectionFactory.cs
- PathGeometry.cs
- _DigestClient.cs
- CommandLibraryHelper.cs
- UniqueSet.cs
- SimpleType.cs
- GeometryCombineModeValidation.cs
- ApplicationException.cs
- ColumnMapCopier.cs
- DataGridViewImageCell.cs
- metadatamappinghashervisitor.cs
- DefaultSerializationProviderAttribute.cs
- ControlParser.cs
- EventDescriptor.cs
- EventSchemaTraceListener.cs
- SystemInformation.cs
- ProxyHwnd.cs
- EditorPart.cs
- Blend.cs
- Completion.cs
- DataGridViewBindingCompleteEventArgs.cs
- Font.cs
- BaseValidator.cs
- DynamicValidatorEventArgs.cs
- JapaneseCalendar.cs
- XmlLinkedNode.cs
- StringWriter.cs
- DescendentsWalker.cs
- RuntimeIdentifierPropertyAttribute.cs
- CompilerError.cs
- PackageDigitalSignature.cs
- PermissionAttributes.cs
- FormViewModeEventArgs.cs
- SerializationException.cs
- MessageHeader.cs
- EntryIndex.cs
- NumericExpr.cs
- MemberExpression.cs
- AsyncResult.cs
- DetailsViewDeleteEventArgs.cs
- DocumentViewer.cs
- DataSourceXmlSubItemAttribute.cs
- XamlToRtfWriter.cs
- Lasso.cs
- XPathParser.cs
- RenderData.cs
- KeyPressEvent.cs
- IntSecurity.cs
- MasterPageCodeDomTreeGenerator.cs
- ExecutionContext.cs
- AddInControllerImpl.cs
- TextBoxAutomationPeer.cs
- RichTextBox.cs
- AdRotator.cs
- DataTrigger.cs
- DataTablePropertyDescriptor.cs
- VBCodeProvider.cs
- FileIOPermission.cs
- EnumBuilder.cs
- Border.cs
- DataColumnPropertyDescriptor.cs
- CodeGenerator.cs
- BrowserDefinitionCollection.cs
- DirectoryInfo.cs
- BitmapPalettes.cs
- AnnouncementClient.cs
- OleDbDataAdapter.cs
- COM2FontConverter.cs
- ModuleBuilderData.cs
- PageBreakRecord.cs
- CheckBox.cs
- CalloutQueueItem.cs
- NamespaceCollection.cs
- NestedContainer.cs
- TextSpan.cs
- Matrix.cs
- DoubleLinkList.cs
- MediaElement.cs
- LineVisual.cs
- DoubleLinkList.cs
- XmlTextEncoder.cs
- WebPartRestoreVerb.cs
- EntityConnectionStringBuilder.cs
- ParenthesizePropertyNameAttribute.cs
- TypographyProperties.cs
- CTreeGenerator.cs
- Exceptions.cs
- TextSyndicationContentKindHelper.cs