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
- autovalidator.cs
- PeerContact.cs
- FlowDocumentPageViewerAutomationPeer.cs
- SessionKeyExpiredException.cs
- MemberCollection.cs
- CodeDirectiveCollection.cs
- WinEventHandler.cs
- ReadOnlyDictionary.cs
- MimeParameterWriter.cs
- CopyOnWriteList.cs
- PerformanceCounter.cs
- ListViewSelectEventArgs.cs
- CounterSetInstanceCounterDataSet.cs
- ImmutableObjectAttribute.cs
- TypeElement.cs
- WhitespaceRule.cs
- KeySpline.cs
- QueryExtender.cs
- SignerInfo.cs
- FormViewDeletedEventArgs.cs
- ObjectToIdCache.cs
- CachedBitmap.cs
- AjaxFrameworkAssemblyAttribute.cs
- NetworkAddressChange.cs
- XmlSchemaCollection.cs
- TextPenaltyModule.cs
- RelatedImageListAttribute.cs
- UIElement3DAutomationPeer.cs
- ClonableStack.cs
- DesignerWidgets.cs
- EditCommandColumn.cs
- UnsettableComboBox.cs
- SessionSymmetricTransportSecurityProtocolFactory.cs
- ValueOfAction.cs
- SQLMoneyStorage.cs
- _NestedMultipleAsyncResult.cs
- DbMetaDataColumnNames.cs
- Mutex.cs
- PageRequestManager.cs
- PreProcessor.cs
- KeyEvent.cs
- ComplexPropertyEntry.cs
- AppDomainFactory.cs
- EntityDataSourceValidationException.cs
- ToolStripPanel.cs
- WindowsFormsHostAutomationPeer.cs
- activationcontext.cs
- StateRuntime.cs
- CompatibleComparer.cs
- DataObjectSettingDataEventArgs.cs
- TableSectionStyle.cs
- ResourceManager.cs
- BitmapFrameDecode.cs
- ModelFactory.cs
- WebRequestModuleElementCollection.cs
- RepeatEnumerable.cs
- XmlAnyElementAttribute.cs
- MachineKeySection.cs
- SizeAnimation.cs
- TriggerCollection.cs
- AnimationException.cs
- shaperfactoryquerycacheentry.cs
- ListViewPagedDataSource.cs
- MetafileHeaderWmf.cs
- XmlObjectSerializerReadContextComplex.cs
- CompositeScriptReferenceEventArgs.cs
- PartitionResolver.cs
- PermissionAttributes.cs
- Config.cs
- DBConnectionString.cs
- RegexCharClass.cs
- Item.cs
- ProgressBarRenderer.cs
- Light.cs
- XmlWhitespace.cs
- LicFileLicenseProvider.cs
- OptimalBreakSession.cs
- XmlSchemaSubstitutionGroup.cs
- SqlConnectionHelper.cs
- SerializerDescriptor.cs
- _OSSOCK.cs
- XmlILIndex.cs
- CachedCompositeFamily.cs
- DecimalSumAggregationOperator.cs
- OleDbDataAdapter.cs
- RegistryPermission.cs
- ReversePositionQuery.cs
- AdapterDictionary.cs
- PageContent.cs
- RecognizedWordUnit.cs
- AppDomainFactory.cs
- WindowsComboBox.cs
- CaseInsensitiveOrdinalStringComparer.cs
- SmtpTransport.cs
- SoapIgnoreAttribute.cs
- TimeStampChecker.cs
- updatecommandorderer.cs
- CheckBoxField.cs
- LocalizabilityAttribute.cs
- DateTimeStorage.cs