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
- XmlIlVisitor.cs
- TypeGeneratedEventArgs.cs
- MgmtConfigurationRecord.cs
- XmlSchemaSimpleContent.cs
- SessionEndingEventArgs.cs
- ButtonRenderer.cs
- SqlWorkflowInstanceStore.cs
- HostExecutionContextManager.cs
- DragAssistanceManager.cs
- DependencyPropertyValueSerializer.cs
- TypeUnloadedException.cs
- HtmlElementErrorEventArgs.cs
- Utilities.cs
- CodeArrayCreateExpression.cs
- WindowsFormsHostAutomationPeer.cs
- DataRow.cs
- EntityDataSourceColumn.cs
- MSHTMLHost.cs
- FixedTextContainer.cs
- XmlSchemaSet.cs
- GridView.cs
- UInt64Converter.cs
- UserControl.cs
- ObjectStateManager.cs
- DbParameterHelper.cs
- DataGridViewCellCancelEventArgs.cs
- ClientScriptManager.cs
- XMLSyntaxException.cs
- securitymgrsite.cs
- Parameter.cs
- AddInProcess.cs
- Missing.cs
- Color.cs
- ActionMismatchAddressingException.cs
- ObjectViewListener.cs
- ConnectionInterfaceCollection.cs
- CroppedBitmap.cs
- CalendarDesigner.cs
- ExpandCollapseProviderWrapper.cs
- FlowLayoutPanel.cs
- HwndTarget.cs
- CompoundFileStreamReference.cs
- QuadraticBezierSegment.cs
- HtmlWindowCollection.cs
- TrackingExtract.cs
- InputScopeManager.cs
- TextEditorTables.cs
- Calendar.cs
- WebPartVerbsEventArgs.cs
- TabControlAutomationPeer.cs
- ButtonAutomationPeer.cs
- SymbolEqualComparer.cs
- ExtentKey.cs
- NullRuntimeConfig.cs
- DataGridColumn.cs
- TagPrefixCollection.cs
- BrushConverter.cs
- Axis.cs
- SchemaCollectionCompiler.cs
- MetadataArtifactLoaderCompositeResource.cs
- SqlError.cs
- PathSegment.cs
- OdbcEnvironment.cs
- HiddenFieldPageStatePersister.cs
- PartManifestEntry.cs
- ToolStripOverflowButton.cs
- Rules.cs
- HTMLTextWriter.cs
- SecurityException.cs
- Number.cs
- _BaseOverlappedAsyncResult.cs
- XmlSchemaInfo.cs
- EncoderExceptionFallback.cs
- InvalidContentTypeException.cs
- RelationshipManager.cs
- LogReserveAndAppendState.cs
- CharacterShapingProperties.cs
- SchemaCollectionPreprocessor.cs
- FunctionNode.cs
- DBAsyncResult.cs
- ClientEventManager.cs
- DateTimeOffsetConverter.cs
- EncryptedKeyHashIdentifierClause.cs
- GridViewRow.cs
- AsyncDataRequest.cs
- Utils.cs
- DataGridTextBoxColumn.cs
- MenuItemAutomationPeer.cs
- StringUtil.cs
- MessageLoggingFilterTraceRecord.cs
- ColumnBinding.cs
- Rights.cs
- BitConverter.cs
- FixedFindEngine.cs
- KeyGestureConverter.cs
- Animatable.cs
- EnvironmentPermission.cs
- ReadOnlyTernaryTree.cs
- TransformCollection.cs
- SiteMap.cs