Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / _SSPISessionCache.cs / 1305376 / _SSPISessionCache.cs
/*++ Copyright (c) Microsoft Corporation Module Name: _SspiSessionCache.cs Abstract: The file implements trivial SSPI credential caching mechanism based on lru list Author: Alexei Vopilov 20-Oct-2004 Revision History: --*/ namespace System.Net.Security { using System.Net; using System.Threading; using System.Collections; // // Implements delayed SSPI handle release, like a finalizable object though the handles are kept alive until being pushed out // by the newly incoming ones. // internal static class SSPIHandleCache { private const int c_MaxCacheSize = 0x1F; // must a (power of 2) - 1 private static SafeCredentialReference[] _CacheSlots = new SafeCredentialReference[c_MaxCacheSize+1]; private static int _Current = -1; internal static void CacheCredential(SafeFreeCredentials newHandle) { try { SafeCredentialReference newRef = SafeCredentialReference.CreateReference(newHandle); if (newRef == null) return; unchecked { int index = Interlocked.Increment(ref _Current) & c_MaxCacheSize; newRef = Interlocked.Exchange(ref _CacheSlots[index], newRef); } if (newRef != null) newRef.Close(); } catch(Exception e) { if (!NclUtilities.IsFatal(e)){ GlobalLog.Assert("SSPIHandlCache", "Attempted to throw: " + e.ToString()); } } } } } // 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
- StylusPointDescription.cs
- ContextMarshalException.cs
- EntityObject.cs
- BufferedOutputStream.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- SecondaryIndex.cs
- TemplatedMailWebEventProvider.cs
- TreeChangeInfo.cs
- ProfileInfo.cs
- ContainerSelectorActiveEvent.cs
- Keywords.cs
- PDBReader.cs
- WebControlAdapter.cs
- RemotingServices.cs
- SmiTypedGetterSetter.cs
- JsonByteArrayDataContract.cs
- ResourceProperty.cs
- QueryGenerator.cs
- XmlNamedNodeMap.cs
- UserControlBuildProvider.cs
- TailPinnedEventArgs.cs
- ViewgenGatekeeper.cs
- ClaimTypes.cs
- DataGridTableCollection.cs
- TableLayoutStyle.cs
- ProgressBar.cs
- EndpointAddressMessageFilterTable.cs
- IpcClientChannel.cs
- HttpAsyncResult.cs
- XPathNodeInfoAtom.cs
- PerformanceCounterPermissionEntryCollection.cs
- PeerName.cs
- XmlSerializer.cs
- wgx_commands.cs
- FontStretches.cs
- X509CertificateCollection.cs
- FieldAccessException.cs
- ReliabilityContractAttribute.cs
- UserUseLicenseDictionaryLoader.cs
- PtsHost.cs
- TiffBitmapDecoder.cs
- WebServiceBindingAttribute.cs
- DataGridItemEventArgs.cs
- PixelFormatConverter.cs
- StatusStrip.cs
- ForwardPositionQuery.cs
- XNodeNavigator.cs
- ValidationSummary.cs
- CssClassPropertyAttribute.cs
- ConstraintCollection.cs
- PropertyPushdownHelper.cs
- NativeMethodsCLR.cs
- SingleKeyFrameCollection.cs
- MessageDirection.cs
- WindowsAltTab.cs
- PointUtil.cs
- WebException.cs
- CategoryGridEntry.cs
- ManagementBaseObject.cs
- ListViewUpdatedEventArgs.cs
- SqlCacheDependency.cs
- AnchoredBlock.cs
- Span.cs
- ByteStreamGeometryContext.cs
- GridSplitterAutomationPeer.cs
- CommandLibraryHelper.cs
- ToolboxItem.cs
- StickyNote.cs
- ItemList.cs
- XmlResolver.cs
- ClientTargetSection.cs
- ArraySubsetEnumerator.cs
- CodeLabeledStatement.cs
- WeakEventTable.cs
- MetadataArtifactLoaderCompositeFile.cs
- SqlExpressionNullability.cs
- ProjectionQueryOptionExpression.cs
- ManagementEventArgs.cs
- ContentControl.cs
- Attributes.cs
- AnnotationDocumentPaginator.cs
- HighlightComponent.cs
- PerformanceCounterManager.cs
- GatewayIPAddressInformationCollection.cs
- Tile.cs
- ArrayList.cs
- CodeVariableReferenceExpression.cs
- sqlinternaltransaction.cs
- SubMenuStyle.cs
- Cursors.cs
- SqlXmlStorage.cs
- PipeStream.cs
- DesignerVerb.cs
- TdsEnums.cs
- WindowsTooltip.cs
- TTSEngineTypes.cs
- ServiceReflector.cs
- DropDownList.cs
- ObsoleteAttribute.cs
- OrderedDictionary.cs