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
- BaseCAMarshaler.cs
- InputBuffer.cs
- DependencyObjectType.cs
- VectorAnimationBase.cs
- PackageRelationship.cs
- FontUnitConverter.cs
- PagerSettings.cs
- JavaScriptString.cs
- MarshalDirectiveException.cs
- SqlConnectionHelper.cs
- EventlogProvider.cs
- Rule.cs
- CodeEventReferenceExpression.cs
- LoginView.cs
- DataTableReaderListener.cs
- SqlUtil.cs
- AsymmetricKeyExchangeDeformatter.cs
- TemplateBuilder.cs
- XPathConvert.cs
- ExpressionBuilderCollection.cs
- XpsPackagingPolicy.cs
- ClassHandlersStore.cs
- WindowsListViewGroupHelper.cs
- EncryptedPackageFilter.cs
- ControlCachePolicy.cs
- AddInSegmentDirectoryNotFoundException.cs
- ThreadPool.cs
- ListViewItem.cs
- PrinterSettings.cs
- DynamicDataManager.cs
- DocumentPageView.cs
- CodeGeneratorOptions.cs
- MessageDispatch.cs
- Polygon.cs
- QilScopedVisitor.cs
- PageParser.cs
- HtmlInputButton.cs
- EventsTab.cs
- TableLayoutStyle.cs
- DataTableReaderListener.cs
- Span.cs
- MeasureData.cs
- ReadOnlyHierarchicalDataSource.cs
- ViewDesigner.cs
- TreeViewImageGenerator.cs
- IDQuery.cs
- DataGridPagerStyle.cs
- DecoderBestFitFallback.cs
- ContentElement.cs
- AxImporter.cs
- ReferentialConstraint.cs
- PartialArray.cs
- StyleCollection.cs
- RuntimeHelpers.cs
- ListItemCollection.cs
- SqlRecordBuffer.cs
- GuidelineSet.cs
- TargetConverter.cs
- InheritedPropertyChangedEventArgs.cs
- PropertyChangeTracker.cs
- PackageProperties.cs
- FlagsAttribute.cs
- ScriptHandlerFactory.cs
- LiteralControl.cs
- DbParameterCollectionHelper.cs
- PartialArray.cs
- DecoderReplacementFallback.cs
- OpCodes.cs
- ServiceBehaviorElementCollection.cs
- RoleManagerModule.cs
- DataControlButton.cs
- KeyToListMap.cs
- Publisher.cs
- MarkupCompilePass2.cs
- WebSysDescriptionAttribute.cs
- AppDomainAttributes.cs
- DependencyObjectType.cs
- TypeElement.cs
- InvalidPropValue.cs
- ImageDrawing.cs
- DataRecordInfo.cs
- MaskedTextBoxTextEditorDropDown.cs
- SynchronizationLockException.cs
- UncommonField.cs
- DictionaryBase.cs
- ContractType.cs
- TheQuery.cs
- SqlUnionizer.cs
- BasicViewGenerator.cs
- TextDpi.cs
- TitleStyle.cs
- HttpVersion.cs
- GregorianCalendarHelper.cs
- CatalogPartCollection.cs
- UIElementCollection.cs
- InvokePattern.cs
- ThreadStaticAttribute.cs
- DetailsViewInsertEventArgs.cs
- Resources.Designer.cs
- BaseDataBoundControl.cs