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
- MailSettingsSection.cs
- XmlChoiceIdentifierAttribute.cs
- GenericIdentity.cs
- Int16Storage.cs
- PropertyMap.cs
- DummyDataSource.cs
- DictionaryManager.cs
- WorkflowRuntime.cs
- NameSpaceEvent.cs
- InputReferenceExpression.cs
- ListenerAdapterBase.cs
- AnchorEditor.cs
- SendingRequestEventArgs.cs
- ConnectionOrientedTransportManager.cs
- ToolStripSeparatorRenderEventArgs.cs
- GridViewItemAutomationPeer.cs
- DbProviderConfigurationHandler.cs
- ChannelSinkStacks.cs
- SQLDouble.cs
- Label.cs
- CachedFontFamily.cs
- XmlArrayAttribute.cs
- MetadataUtil.cs
- OptionUsage.cs
- DropDownButton.cs
- TextBlock.cs
- StrongNameIdentityPermission.cs
- DataServiceHost.cs
- WindowsTokenRoleProvider.cs
- WebDisplayNameAttribute.cs
- BuildProvidersCompiler.cs
- TextTreeTextNode.cs
- Oid.cs
- SourceInterpreter.cs
- WindowsToolbarAsMenu.cs
- _NetRes.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- BamlResourceContent.cs
- RightsManagementInformation.cs
- CompilerTypeWithParams.cs
- CallContext.cs
- TransformValueSerializer.cs
- ExtenderControl.cs
- Pair.cs
- CursorConverter.cs
- ButtonFieldBase.cs
- CharStorage.cs
- ProcessModule.cs
- QueueProcessor.cs
- CommandCollectionEditor.cs
- EventSinkHelperWriter.cs
- WebHttpSecurity.cs
- ToolStripStatusLabel.cs
- MulticastIPAddressInformationCollection.cs
- FileStream.cs
- ArraySortHelper.cs
- SessionEndingEventArgs.cs
- TextModifier.cs
- TextSelectionHelper.cs
- XmlnsDictionary.cs
- DirectionalLight.cs
- MimeImporter.cs
- XamlSerializerUtil.cs
- URLString.cs
- NavigationCommands.cs
- SingleAnimationBase.cs
- FormViewInsertedEventArgs.cs
- RpcCryptoRequest.cs
- XPathScanner.cs
- FixedSOMTable.cs
- ExtendedProperty.cs
- HtmlImageAdapter.cs
- DesignerVerb.cs
- GridViewUpdatedEventArgs.cs
- Control.cs
- UserControl.cs
- DnsPermission.cs
- GroupStyle.cs
- Registry.cs
- SoapAttributes.cs
- TypedDatasetGenerator.cs
- MultiByteCodec.cs
- _TLSstream.cs
- ProvidersHelper.cs
- EmptyImpersonationContext.cs
- FontEmbeddingManager.cs
- DesignerVerbCollection.cs
- DefinitionBase.cs
- SchemaMapping.cs
- SqlMultiplexer.cs
- RadioButtonRenderer.cs
- BamlLocalizabilityResolver.cs
- UriTemplatePathPartiallyEquivalentSet.cs
- ProcessStartInfo.cs
- UrlPath.cs
- WebServiceClientProxyGenerator.cs
- UnconditionalPolicy.cs
- XamlTemplateSerializer.cs
- SmiGettersStream.cs
- SiteMapDataSource.cs