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
- DesignOnlyAttribute.cs
- MetadataException.cs
- WebSysDefaultValueAttribute.cs
- TextElement.cs
- Hyperlink.cs
- MetafileHeader.cs
- CodeTypeReference.cs
- DescendantBaseQuery.cs
- DataGridSortCommandEventArgs.cs
- DragDeltaEventArgs.cs
- Fx.cs
- Message.cs
- XmlDomTextWriter.cs
- PropertyPathWorker.cs
- AutomationElement.cs
- UpdateEventArgs.cs
- LightweightCodeGenerator.cs
- ZipIOCentralDirectoryFileHeader.cs
- AxHost.cs
- SerTrace.cs
- WebPartsPersonalization.cs
- BaseProcessor.cs
- MimeWriter.cs
- CheckBox.cs
- EntityObject.cs
- ParameterElementCollection.cs
- AutoResetEvent.cs
- VerificationAttribute.cs
- SafeNativeMethodsCLR.cs
- InitializingNewItemEventArgs.cs
- FormCollection.cs
- UserControlDocumentDesigner.cs
- PreparingEnlistment.cs
- BindingMAnagerBase.cs
- SafeCryptContextHandle.cs
- UnsafeNativeMethodsCLR.cs
- FontSizeConverter.cs
- shaper.cs
- ProviderUtil.cs
- AdRotator.cs
- Section.cs
- ToolStripLocationCancelEventArgs.cs
- OleDbInfoMessageEvent.cs
- DataServiceRequestArgs.cs
- ProtocolInformationReader.cs
- GeometryGroup.cs
- QilBinary.cs
- SqlBooleanMismatchVisitor.cs
- FontCacheUtil.cs
- ScopelessEnumAttribute.cs
- MultiAsyncResult.cs
- CalendarTable.cs
- QilGeneratorEnv.cs
- FSWPathEditor.cs
- CssStyleCollection.cs
- OdbcConnectionOpen.cs
- EndpointConfigContainer.cs
- RoutingTable.cs
- Publisher.cs
- StickyNoteContentControl.cs
- ConnectionsZone.cs
- TableLayoutColumnStyleCollection.cs
- SignatureToken.cs
- RegexReplacement.cs
- SecurityException.cs
- DataGridViewButtonColumn.cs
- GroupBoxAutomationPeer.cs
- DataMember.cs
- SingleAnimationBase.cs
- EraserBehavior.cs
- CodeExpressionStatement.cs
- AxHostDesigner.cs
- Bits.cs
- XmlUrlResolver.cs
- StoryFragments.cs
- SplitContainerDesigner.cs
- MeshGeometry3D.cs
- NativeMethods.cs
- FlagsAttribute.cs
- CalendarButton.cs
- CompilerError.cs
- SizeIndependentAnimationStorage.cs
- UserMapPath.cs
- HtmlInputPassword.cs
- ServiceParser.cs
- CreateUserErrorEventArgs.cs
- tibetanshape.cs
- DataSet.cs
- WindowsNonControl.cs
- XmlBinaryReader.cs
- RepeaterItemEventArgs.cs
- EffectiveValueEntry.cs
- GACMembershipCondition.cs
- PixelShader.cs
- PrivateFontCollection.cs
- SerializationInfo.cs
- ColumnWidthChangedEvent.cs
- OletxResourceManager.cs
- ReferencedCollectionType.cs
- ContentValidator.cs