Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / Net / _SSPISessionCache.cs / 1 / _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()); } } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReflectionUtil.cs
- PagesSection.cs
- ProcessManager.cs
- ContractCodeDomInfo.cs
- BaseProcessProtocolHandler.cs
- HtmlTable.cs
- RegexParser.cs
- QueryStringConverter.cs
- ObjectDataSource.cs
- Dynamic.cs
- StreamAsIStream.cs
- BinaryFormatterWriter.cs
- sitestring.cs
- HwndMouseInputProvider.cs
- QueueProcessor.cs
- SecureUICommand.cs
- StatusBarItem.cs
- ContextMarshalException.cs
- ConfigurationValues.cs
- CodeSubDirectoriesCollection.cs
- PartialList.cs
- EncryptedType.cs
- InvokeWebServiceDesigner.cs
- XmlTextEncoder.cs
- ConvertersCollection.cs
- BindingSource.cs
- Attributes.cs
- ConfigXmlCDataSection.cs
- ServiceModelEnumValidator.cs
- LocationChangedEventArgs.cs
- IdentifierCreationService.cs
- DodSequenceMerge.cs
- NamespaceEmitter.cs
- Size3D.cs
- TextServicesCompartment.cs
- AsymmetricSignatureFormatter.cs
- DataRelationPropertyDescriptor.cs
- GreenMethods.cs
- AxHost.cs
- MeasurementDCInfo.cs
- SemanticResultKey.cs
- WebBrowserSiteBase.cs
- TextEditorThreadLocalStore.cs
- ButtonStandardAdapter.cs
- TextBoxView.cs
- TextProperties.cs
- TableLayoutColumnStyleCollection.cs
- ErrorHandler.cs
- ViewGenerator.cs
- QueryParameter.cs
- httpserverutility.cs
- HandlerBase.cs
- TablePattern.cs
- ConfigurationSectionGroup.cs
- PrintingPermission.cs
- NodeInfo.cs
- DataServiceQueryContinuation.cs
- RoleManagerEventArgs.cs
- ProviderConnectionPointCollection.cs
- DataGridRow.cs
- XmlNode.cs
- EntityCommandCompilationException.cs
- XmlILModule.cs
- SingleStorage.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- GradientSpreadMethodValidation.cs
- DefaultProxySection.cs
- ResolveNextArgumentWorkItem.cs
- JsonFormatGeneratorStatics.cs
- AssemblyUtil.cs
- MetafileHeaderWmf.cs
- CollectionViewProxy.cs
- ProcessModuleCollection.cs
- AssemblyNameProxy.cs
- FtpWebRequest.cs
- LogArchiveSnapshot.cs
- ExecutionEngineException.cs
- DataGridViewCellStyleConverter.cs
- TraversalRequest.cs
- DynamicPropertyReader.cs
- HelpKeywordAttribute.cs
- ProtocolViolationException.cs
- LineProperties.cs
- RectangleHotSpot.cs
- BitmapEffect.cs
- ColumnHeaderCollectionEditor.cs
- ToolStripSettings.cs
- RoleManagerSection.cs
- SettingsAttributes.cs
- DataViewListener.cs
- PersonalizationProvider.cs
- IODescriptionAttribute.cs
- CommandEventArgs.cs
- IgnoreSectionHandler.cs
- ScaleTransform.cs
- XmlDataSourceNodeDescriptor.cs
- DetailsViewModeEventArgs.cs
- OdbcEnvironmentHandle.cs
- SqlHelper.cs
- CrossSiteScriptingValidation.cs