Code:
/ FX-1434 / FX-1434 / 1.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
- diagnosticsswitches.cs
- PocoPropertyAccessorStrategy.cs
- ConcurrentQueue.cs
- NameTable.cs
- ColorConvertedBitmapExtension.cs
- SqlFactory.cs
- PointCollection.cs
- Literal.cs
- ImageSource.cs
- CreateParams.cs
- FormatException.cs
- Command.cs
- base64Transforms.cs
- DataBindingCollection.cs
- TimeZone.cs
- XmlElementAttributes.cs
- DashStyles.cs
- NumberFunctions.cs
- DataTableCollection.cs
- ExecutionContext.cs
- Slider.cs
- XmlSerializerOperationGenerator.cs
- DateRangeEvent.cs
- Panel.cs
- FieldNameLookup.cs
- VBCodeProvider.cs
- XmlSchemaAttribute.cs
- Renderer.cs
- WebBrowserNavigatedEventHandler.cs
- ComplexTypeEmitter.cs
- ConnectionManager.cs
- FixedBufferAttribute.cs
- CodeDOMUtility.cs
- InputChannelAcceptor.cs
- ConfigXmlText.cs
- DataGrid.cs
- ElementsClipboardData.cs
- XmlSortKeyAccumulator.cs
- TdsParameterSetter.cs
- UnsafeNativeMethodsMilCoreApi.cs
- Error.cs
- GridViewDeletedEventArgs.cs
- UInt32Storage.cs
- COM2PropertyBuilderUITypeEditor.cs
- PartitionResolver.cs
- OptionUsage.cs
- AssociatedControlConverter.cs
- RegistryKey.cs
- CreateRefExpr.cs
- SqlMetaData.cs
- PopOutPanel.cs
- EdmFunctionAttribute.cs
- PrintEvent.cs
- XmlILIndex.cs
- UriSection.cs
- ObjectListField.cs
- FtpWebRequest.cs
- SoapObjectReader.cs
- nulltextnavigator.cs
- CriticalFinalizerObject.cs
- GeometryDrawing.cs
- MappingSource.cs
- WebConfigurationFileMap.cs
- WebRequestModuleElement.cs
- ResourceProviderFactory.cs
- DatePicker.cs
- FormatterServices.cs
- ResourceReferenceExpression.cs
- ADMembershipProvider.cs
- RawStylusActions.cs
- AddInAttribute.cs
- XmlSchemaAttribute.cs
- XmlSchemaInfo.cs
- MDIClient.cs
- StateMachineAction.cs
- ResXBuildProvider.cs
- CodeIdentifiers.cs
- UriTemplateMatch.cs
- WebServiceTypeData.cs
- DoubleCollectionValueSerializer.cs
- UDPClient.cs
- MsmqInputChannelListenerBase.cs
- ScopelessEnumAttribute.cs
- ChangeToolStripParentVerb.cs
- TypeSystem.cs
- SmiSettersStream.cs
- StringPropertyBuilder.cs
- TableLayoutRowStyleCollection.cs
- MimeParameters.cs
- CellParaClient.cs
- TrackBarRenderer.cs
- Geometry3D.cs
- MarginCollapsingState.cs
- RectConverter.cs
- CodeMemberEvent.cs
- prompt.cs
- RpcCryptoContext.cs
- ObjectListCommandCollection.cs
- BinaryObjectReader.cs
- MultilineStringEditor.cs