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
- TreeViewImageKeyConverter.cs
- CategoryValueConverter.cs
- ECDsa.cs
- RangeContentEnumerator.cs
- NonBatchDirectoryCompiler.cs
- _NativeSSPI.cs
- BinaryNode.cs
- VisualTreeUtils.cs
- SqlFormatter.cs
- CodeDOMProvider.cs
- Models.cs
- URLIdentityPermission.cs
- FunctionCommandText.cs
- DynamicDocumentPaginator.cs
- DataControlCommands.cs
- safesecurityhelperavalon.cs
- SafeWaitHandle.cs
- MouseWheelEventArgs.cs
- DBCommand.cs
- DispatcherSynchronizationContext.cs
- Control.cs
- CroppedBitmap.cs
- TextRangeEditLists.cs
- MetadataSource.cs
- AssertFilter.cs
- XmlCDATASection.cs
- Pair.cs
- NumericPagerField.cs
- ActiveXHelper.cs
- ConnectivityStatus.cs
- QueryStringParameter.cs
- XPathItem.cs
- FrameworkElement.cs
- PrimitiveXmlSerializers.cs
- SqlDataSourceView.cs
- TcpTransportSecurity.cs
- ProfilePropertySettingsCollection.cs
- sqlser.cs
- ChtmlFormAdapter.cs
- SplitterPanel.cs
- WebBrowserBase.cs
- TemplatedMailWebEventProvider.cs
- ObjectDataSourceSelectingEventArgs.cs
- DataStorage.cs
- FullTrustAssembliesSection.cs
- DataGridRelationshipRow.cs
- BitmapFrameDecode.cs
- ToolStripSeparatorRenderEventArgs.cs
- DataGridView.cs
- ObjectContext.cs
- securitycriticaldata.cs
- GridLength.cs
- UDPClient.cs
- SHA1.cs
- PrefixQName.cs
- SoapTypeAttribute.cs
- HttpGetClientProtocol.cs
- DetailsViewDeleteEventArgs.cs
- uribuilder.cs
- WindowsEditBox.cs
- XPathSelectionIterator.cs
- MetadataItem_Static.cs
- XsltOutput.cs
- WebPartPersonalization.cs
- RoleManagerSection.cs
- ContractBase.cs
- DbCommandDefinition.cs
- TextInfo.cs
- CubicEase.cs
- ImageListUtils.cs
- SQLInt16.cs
- DataSetUtil.cs
- SoapMessage.cs
- MenuItemStyle.cs
- DeferredTextReference.cs
- RectIndependentAnimationStorage.cs
- HtmlElementEventArgs.cs
- DataGridViewColumnEventArgs.cs
- TabPanel.cs
- CompositionCommandSet.cs
- recordstate.cs
- DefaultPropertyAttribute.cs
- Quaternion.cs
- Rotation3DAnimationUsingKeyFrames.cs
- RequestCache.cs
- PerformanceCountersElement.cs
- DispatchProxy.cs
- DataGridViewComboBoxEditingControl.cs
- CallbackValidatorAttribute.cs
- IIS7UserPrincipal.cs
- Model3D.cs
- ObjectConverter.cs
- NameScope.cs
- DropShadowBitmapEffect.cs
- KeyedHashAlgorithm.cs
- ObjectItemCollection.cs
- ScalarType.cs
- Unit.cs
- StorageAssociationTypeMapping.cs
- LambdaExpression.cs