Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / State / ISessionStateStore.cs / 1305376 / ISessionStateStore.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * SessionStateStoreProviderBase * */ namespace System.Web.SessionState { using System.Xml; using System.Security.Permissions; using System.Configuration.Provider; using System.Collections.Specialized; [FlagsAttribute()] internal enum SessionStateItemFlags : int { None = 0x00000000, Uninitialized = 0x00000001, IgnoreCacheItemRemoved = 0x00000002 } [FlagsAttribute()] public enum SessionStateActions : int { None = 0x00000000, InitializeItem = 0x00000001 } // This interface is used by SessionStateModule to read/write the session state data public abstract class SessionStateStoreProviderBase : ProviderBase { public abstract void Dispose(); // Called by SessionStateModule to notify the provider that Session_End is defined // in global.asax, and so when an item expires, it should call the expireCallback // If the provider does not support session expiry, it should return false. public abstract bool SetItemExpireCallback(SessionStateItemExpireCallback expireCallback); // Called at the beginning of the AcquireRequestState event public abstract void InitializeRequest(HttpContext context); // Get and return a SessionStateStoreData. // Please note that we are implementing a reader/writer lock mechanism. // // If successful: // - returns the item // // If not found: // - set 'locked' to false // - returns null // // If the item is already locked by another request: // - set 'locked' to true // - set 'lockAge' to how long has the item been locked // - set 'lockId' to the context of the lock // - returns null public abstract SessionStateStoreData GetItem(HttpContext context, String id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions); // Get and lock a SessionStateStoreData. // Please note that we are implementing a reader/writer lock mechanism. // // If successful: // - set 'lockId' to the context of the lock // - returns the item // // If not found: // - set 'locked' to false // - returns null // // If the item is already locked by another request: // - set 'locked' to true // - set 'lockAge' to how long has the item been locked // - set 'lockId' to the context of the lock // - returns null public abstract SessionStateStoreData GetItemExclusive(HttpContext context, String id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions); // Unlock an item locked by GetExclusive // 'lockId' is the lock context returned by previous call to GetExclusive public abstract void ReleaseItemExclusive(HttpContext context, String id, object lockId); // Write an item. // Note: The item is originally obtained by GetExclusive // Because SessionStateModule will release (by ReleaseExclusive) am item if // it has been locked for too long, so it is possible that the request calling // Set() may have lost the lock to someone else already. This can be // discovered by comparing the supplied lockId with the lockId value // stored with the state item. public abstract void SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, object lockId, bool newItem); // Remove an item. See the note in Set. public abstract void RemoveItem(HttpContext context, String id, object lockId, SessionStateStoreData item); // Reset the expire time of an item based on its timeout value public abstract void ResetItemTimeout(HttpContext context, String id); // Create a brand new SessionStateStoreData. The created SessionStateStoreData must have // a non-null ISessionStateItemCollection. public abstract SessionStateStoreData CreateNewStoreData(HttpContext context, int timeout); public abstract void CreateUninitializedItem(HttpContext context, String id, int timeout); // Called during EndRequest event public abstract void EndRequest(HttpContext context); internal virtual void Initialize(string name, NameValueCollection config, IPartitionResolver partitionResolver) { } } public class SessionStateStoreData { ISessionStateItemCollection _sessionItems; HttpStaticObjectsCollection _staticObjects; int _timeout; public SessionStateStoreData(ISessionStateItemCollection sessionItems, HttpStaticObjectsCollection staticObjects, int timeout) { _sessionItems = sessionItems; _staticObjects = staticObjects; _timeout = timeout; } virtual public ISessionStateItemCollection Items { get { return _sessionItems; } } virtual public HttpStaticObjectsCollection StaticObjects { get { return _staticObjects; } } virtual public int Timeout { get { return _timeout; } set { _timeout = value; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * SessionStateStoreProviderBase * */ namespace System.Web.SessionState { using System.Xml; using System.Security.Permissions; using System.Configuration.Provider; using System.Collections.Specialized; [FlagsAttribute()] internal enum SessionStateItemFlags : int { None = 0x00000000, Uninitialized = 0x00000001, IgnoreCacheItemRemoved = 0x00000002 } [FlagsAttribute()] public enum SessionStateActions : int { None = 0x00000000, InitializeItem = 0x00000001 } // This interface is used by SessionStateModule to read/write the session state data public abstract class SessionStateStoreProviderBase : ProviderBase { public abstract void Dispose(); // Called by SessionStateModule to notify the provider that Session_End is defined // in global.asax, and so when an item expires, it should call the expireCallback // If the provider does not support session expiry, it should return false. public abstract bool SetItemExpireCallback(SessionStateItemExpireCallback expireCallback); // Called at the beginning of the AcquireRequestState event public abstract void InitializeRequest(HttpContext context); // Get and return a SessionStateStoreData. // Please note that we are implementing a reader/writer lock mechanism. // // If successful: // - returns the item // // If not found: // - set 'locked' to false // - returns null // // If the item is already locked by another request: // - set 'locked' to true // - set 'lockAge' to how long has the item been locked // - set 'lockId' to the context of the lock // - returns null public abstract SessionStateStoreData GetItem(HttpContext context, String id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions); // Get and lock a SessionStateStoreData. // Please note that we are implementing a reader/writer lock mechanism. // // If successful: // - set 'lockId' to the context of the lock // - returns the item // // If not found: // - set 'locked' to false // - returns null // // If the item is already locked by another request: // - set 'locked' to true // - set 'lockAge' to how long has the item been locked // - set 'lockId' to the context of the lock // - returns null public abstract SessionStateStoreData GetItemExclusive(HttpContext context, String id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions); // Unlock an item locked by GetExclusive // 'lockId' is the lock context returned by previous call to GetExclusive public abstract void ReleaseItemExclusive(HttpContext context, String id, object lockId); // Write an item. // Note: The item is originally obtained by GetExclusive // Because SessionStateModule will release (by ReleaseExclusive) am item if // it has been locked for too long, so it is possible that the request calling // Set() may have lost the lock to someone else already. This can be // discovered by comparing the supplied lockId with the lockId value // stored with the state item. public abstract void SetAndReleaseItemExclusive(HttpContext context, String id, SessionStateStoreData item, object lockId, bool newItem); // Remove an item. See the note in Set. public abstract void RemoveItem(HttpContext context, String id, object lockId, SessionStateStoreData item); // Reset the expire time of an item based on its timeout value public abstract void ResetItemTimeout(HttpContext context, String id); // Create a brand new SessionStateStoreData. The created SessionStateStoreData must have // a non-null ISessionStateItemCollection. public abstract SessionStateStoreData CreateNewStoreData(HttpContext context, int timeout); public abstract void CreateUninitializedItem(HttpContext context, String id, int timeout); // Called during EndRequest event public abstract void EndRequest(HttpContext context); internal virtual void Initialize(string name, NameValueCollection config, IPartitionResolver partitionResolver) { } } public class SessionStateStoreData { ISessionStateItemCollection _sessionItems; HttpStaticObjectsCollection _staticObjects; int _timeout; public SessionStateStoreData(ISessionStateItemCollection sessionItems, HttpStaticObjectsCollection staticObjects, int timeout) { _sessionItems = sessionItems; _staticObjects = staticObjects; _timeout = timeout; } virtual public ISessionStateItemCollection Items { get { return _sessionItems; } } virtual public HttpStaticObjectsCollection StaticObjects { get { return _staticObjects; } } virtual public int Timeout { get { return _timeout; } set { _timeout = value; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QilPatternFactory.cs
- DelegateSerializationHolder.cs
- DataGridViewHitTestInfo.cs
- SettingsBindableAttribute.cs
- WindowsTooltip.cs
- Parsers.cs
- PersonalizationAdministration.cs
- ListViewDeleteEventArgs.cs
- CatalogPart.cs
- IntegerValidatorAttribute.cs
- COM2Enum.cs
- WebPartDescription.cs
- OleDbSchemaGuid.cs
- TabControlEvent.cs
- RectAnimationUsingKeyFrames.cs
- TypeSystem.cs
- SymmetricAlgorithm.cs
- CapabilitiesState.cs
- RegexNode.cs
- ProviderConnectionPoint.cs
- InternalMappingException.cs
- ApplicationSecurityInfo.cs
- CollectionConverter.cs
- InteropAutomationProvider.cs
- XmlNode.cs
- EdgeProfileValidation.cs
- Wildcard.cs
- RepeaterItem.cs
- DataSourceHelper.cs
- HtmlButton.cs
- ServiceModelConfigurationSectionGroup.cs
- DetailsView.cs
- WinFormsSpinner.cs
- EventListener.cs
- HttpProfileGroupBase.cs
- IndexExpression.cs
- Root.cs
- MenuItemStyleCollection.cs
- CTreeGenerator.cs
- OutputCacheSection.cs
- WebPartTracker.cs
- PerformanceCountersElement.cs
- DataServiceEntityAttribute.cs
- HMACSHA384.cs
- OracleParameterBinding.cs
- SizeConverter.cs
- ElementProxy.cs
- CodeAttributeDeclaration.cs
- FileChangesMonitor.cs
- SelectedDatesCollection.cs
- Rijndael.cs
- ObjectDataSourceMethodEventArgs.cs
- FileSystemInfo.cs
- SoapSchemaImporter.cs
- PrivilegeNotHeldException.cs
- JulianCalendar.cs
- UIElementHelper.cs
- AutomationIdentifierGuids.cs
- QueryOperationResponseOfT.cs
- DesignerTransaction.cs
- PointHitTestResult.cs
- _NegotiateClient.cs
- XmlWriterSettings.cs
- MarkupObject.cs
- SafeRegistryKey.cs
- TimeoutValidationAttribute.cs
- EdmConstants.cs
- InputScope.cs
- DSASignatureFormatter.cs
- KeyToListMap.cs
- HttpVersion.cs
- RectangleF.cs
- DefaultProxySection.cs
- webeventbuffer.cs
- TreeNodeBinding.cs
- XPathNodeHelper.cs
- DefaultValueConverter.cs
- StringValueSerializer.cs
- DataGrid.cs
- CellTreeNodeVisitors.cs
- PeerContact.cs
- UrlParameterReader.cs
- MimeBasePart.cs
- RequestCacheEntry.cs
- DependencyObjectCodeDomSerializer.cs
- RtfToXamlLexer.cs
- UnaryExpression.cs
- CacheSection.cs
- JpegBitmapDecoder.cs
- MultiByteCodec.cs
- ResetableIterator.cs
- LocalFileSettingsProvider.cs
- HostedElements.cs
- NetCodeGroup.cs
- Line.cs
- DataGridViewCellParsingEventArgs.cs
- MatrixValueSerializer.cs
- HtmlHead.cs
- OracleString.cs
- UnsafeNativeMethods.cs