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
- Wrapper.cs
- CompilerHelpers.cs
- TreeViewImageIndexConverter.cs
- ScriptDescriptor.cs
- DescriptionAttribute.cs
- Char.cs
- InfiniteTimeSpanConverter.cs
- MimeMultiPart.cs
- PlainXmlWriter.cs
- ManualResetEvent.cs
- DebugController.cs
- WpfWebRequestHelper.cs
- AccessKeyManager.cs
- ImageCodecInfo.cs
- ScriptingJsonSerializationSection.cs
- UpDownBaseDesigner.cs
- FrameDimension.cs
- EntityDataSourceReferenceGroup.cs
- UIElement3D.cs
- Table.cs
- RSAOAEPKeyExchangeFormatter.cs
- AsyncCodeActivityContext.cs
- WebPartTransformerAttribute.cs
- PathTooLongException.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- GeneralTransform2DTo3DTo2D.cs
- UniqueIdentifierService.cs
- ConstraintConverter.cs
- XamlVector3DCollectionSerializer.cs
- NavigationPropertySingletonExpression.cs
- XmlWriterSettings.cs
- CompilerCollection.cs
- DataViewSettingCollection.cs
- BinaryParser.cs
- Viewport2DVisual3D.cs
- Configuration.cs
- GenericTypeParameterBuilder.cs
- DataGridViewLinkColumn.cs
- WinFormsUtils.cs
- ServiceBusyException.cs
- DefaultEventAttribute.cs
- RubberbandSelector.cs
- PrintPreviewGraphics.cs
- TraceProvider.cs
- SqlSelectClauseBuilder.cs
- DataGridViewHeaderCell.cs
- ThrowHelper.cs
- ListViewSelectEventArgs.cs
- UIElement.cs
- IPAddressCollection.cs
- COSERVERINFO.cs
- GZipStream.cs
- DefaultEvaluationContext.cs
- StreamHelper.cs
- MouseGestureConverter.cs
- EntityParameter.cs
- Parallel.cs
- ACE.cs
- ViewRendering.cs
- CmsUtils.cs
- FixedPage.cs
- PointAnimationUsingPath.cs
- ColorTypeConverter.cs
- GlobalizationAssembly.cs
- XmlSchemaDocumentation.cs
- SqlConnectionFactory.cs
- Label.cs
- oledbmetadatacolumnnames.cs
- OSEnvironmentHelper.cs
- ThreadInterruptedException.cs
- CollectionViewGroupInternal.cs
- SessionPageStatePersister.cs
- StylusOverProperty.cs
- PreservationFileWriter.cs
- IfJoinedCondition.cs
- NamespaceEmitter.cs
- XmlProcessingInstruction.cs
- NativeMethods.cs
- SqlClientFactory.cs
- ReflectionTypeLoadException.cs
- IconHelper.cs
- Pair.cs
- PtsPage.cs
- SystemUdpStatistics.cs
- QueryNode.cs
- StylusPointDescription.cs
- HierarchicalDataTemplate.cs
- dataSvcMapFileLoader.cs
- PageEventArgs.cs
- StringArrayEditor.cs
- WorkflowInstanceUnhandledExceptionRecord.cs
- nulltextcontainer.cs
- WsdlInspector.cs
- FigureParagraph.cs
- ToolBarPanel.cs
- DesignOnlyAttribute.cs
- Win32SafeHandles.cs
- SortDescriptionCollection.cs
- SettingsPropertyValueCollection.cs
- FixedSOMElement.cs