Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Security / Tokens / SecurityContextSecurityTokenResolver.cs / 1 / SecurityContextSecurityTokenResolver.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Security.Tokens { using System.Xml; using System.ServiceModel; using System.Collections.ObjectModel; using System.IdentityModel.Selectors; using System.IdentityModel.Tokens; public class SecurityContextSecurityTokenResolver : SecurityTokenResolver, ISecurityContextSecurityTokenCache { SecurityContextTokenCache tokenCache; bool removeOldestTokensOnCacheFull; int capacity; public SecurityContextSecurityTokenResolver(int securityContextCacheCapacity, bool removeOldestTokensOnCacheFull) { if (securityContextCacheCapacity <= 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("securityContextCacheCapacity", SR.GetString(SR.ValueMustBeGreaterThanZero))); } this.capacity = securityContextCacheCapacity; this.removeOldestTokensOnCacheFull = removeOldestTokensOnCacheFull; this.tokenCache = new SecurityContextTokenCache(this.capacity, this.removeOldestTokensOnCacheFull); } public int SecurityContextTokenCacheCapacity { get { return this.capacity; } } public bool RemoveOldestTokensOnCacheFull { get { return this.removeOldestTokensOnCacheFull; } } public void AddContext(SecurityContextSecurityToken token) { this.tokenCache.AddContext(token); } public bool TryAddContext(SecurityContextSecurityToken token) { return this.tokenCache.TryAddContext(token); } public void ClearContexts() { this.tokenCache.ClearContexts(); } public void RemoveContext(UniqueId contextId, UniqueId generation) { this.tokenCache.RemoveContext(contextId, generation, false); } public void RemoveAllContexts(UniqueId contextId) { this.tokenCache.RemoveAllContexts(contextId); } public SecurityContextSecurityToken GetContext(UniqueId contextId, UniqueId generation) { return this.tokenCache.GetContext(contextId, generation); } public CollectionGetAllContexts(UniqueId contextId) { return this.tokenCache.GetAllContexts(contextId); } public void UpdateContextCachingTime(SecurityContextSecurityToken context, DateTime expirationTime) { this.tokenCache.UpdateContextCachingTime(context, expirationTime); } protected override bool TryResolveTokenCore(SecurityKeyIdentifierClause keyIdentifierClause, out SecurityToken token) { SecurityContextKeyIdentifierClause sctSkiClause = keyIdentifierClause as SecurityContextKeyIdentifierClause; if (sctSkiClause != null) { token = this.tokenCache.GetContext(sctSkiClause.ContextId, sctSkiClause.Generation); } else { token = null; } return (token != null); } protected override bool TryResolveSecurityKeyCore(SecurityKeyIdentifierClause keyIdentifierClause, out SecurityKey key) { SecurityToken sct; if (TryResolveTokenCore(keyIdentifierClause, out sct)) { key = ((SecurityContextSecurityToken)sct).SecurityKeys[0]; return true; } else { key = null; return false; } } protected override bool TryResolveTokenCore(SecurityKeyIdentifier keyIdentifier, out SecurityToken token) { SecurityContextKeyIdentifierClause sctSkiClause; if (keyIdentifier.TryFind (out sctSkiClause)) { return TryResolveToken(sctSkiClause, out token); } else { token = null; return false; } } } } // 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
- OrCondition.cs
- BindingManagerDataErrorEventArgs.cs
- ShaderRenderModeValidation.cs
- TimeEnumHelper.cs
- PeerHopCountAttribute.cs
- EntitySetBase.cs
- ActiveXMessageFormatter.cs
- SqlTransaction.cs
- GestureRecognitionResult.cs
- Confirm.cs
- SoapReflectionImporter.cs
- PropVariant.cs
- XmlSchemaExporter.cs
- TreeNodeBindingCollection.cs
- ToolStripItemTextRenderEventArgs.cs
- OleDbWrapper.cs
- BitmapMetadataEnumerator.cs
- OpenTypeLayout.cs
- Point3DCollection.cs
- ReachDocumentReferenceSerializer.cs
- EntityDataSourceDesignerHelper.cs
- PrimitiveDataContract.cs
- CounterSample.cs
- TextTreeTextElementNode.cs
- SocketInformation.cs
- Int32.cs
- TabRenderer.cs
- ZoneButton.cs
- WebPartEditorCancelVerb.cs
- XmlTypeAttribute.cs
- CompiledXpathExpr.cs
- ExpressionBuilderContext.cs
- Action.cs
- UnitControl.cs
- IPEndPoint.cs
- MarkupExtensionReturnTypeAttribute.cs
- WebEvents.cs
- SystemWebExtensionsSectionGroup.cs
- StringBlob.cs
- LeafCellTreeNode.cs
- ConfigLoader.cs
- FixedSchema.cs
- TextTreeInsertUndoUnit.cs
- ThumbButtonInfo.cs
- Part.cs
- XmlDictionaryWriter.cs
- AsymmetricSignatureDeformatter.cs
- MenuCommand.cs
- BooleanExpr.cs
- OptimizerPatterns.cs
- ClientSideQueueItem.cs
- ResolvedKeyFrameEntry.cs
- ApplicationDirectory.cs
- WaitHandleCannotBeOpenedException.cs
- Preprocessor.cs
- DescendentsWalker.cs
- DynamicDocumentPaginator.cs
- Instrumentation.cs
- StrongNameIdentityPermission.cs
- SqlNotificationRequest.cs
- Library.cs
- PersonalizationEntry.cs
- DesignerForm.cs
- HiddenFieldPageStatePersister.cs
- GeometryHitTestResult.cs
- SerialPort.cs
- SmtpFailedRecipientsException.cs
- XsltArgumentList.cs
- DeclarativeExpressionConditionDeclaration.cs
- SelectionProcessor.cs
- ProcessManager.cs
- WebPartDeleteVerb.cs
- BindToObject.cs
- ScrollContentPresenter.cs
- JpegBitmapEncoder.cs
- StringFreezingAttribute.cs
- IdleTimeoutMonitor.cs
- RuleValidation.cs
- SqlCharStream.cs
- PageContentCollection.cs
- ConnectionPointCookie.cs
- CustomAttributeSerializer.cs
- TransportChannelFactory.cs
- StorageMappingItemCollection.cs
- RetrieveVirtualItemEventArgs.cs
- NavigationWindow.cs
- DeflateStream.cs
- ByteConverter.cs
- XmlTextReaderImpl.cs
- ToolboxSnapDragDropEventArgs.cs
- TreeViewImageIndexConverter.cs
- AppDomainAttributes.cs
- DesigntimeLicenseContext.cs
- InlineObject.cs
- PaintEvent.cs
- OpenFileDialog.cs
- AstTree.cs
- Int32Converter.cs
- DiscreteKeyFrames.cs
- IgnoreSectionHandler.cs