Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / State / SessionStateContainer.cs / 1 / SessionStateContainer.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * HttpSessionState * * Copyright (c) 1998-1999, Microsoft Corporation * */ namespace System.Web.SessionState { using System.Threading; using System.Runtime.InteropServices; using System.Web; using System.Web.Util; using System.Collections; using System.Collections.Specialized; using System.Text; using System.Globalization; using System.Security.Permissions; [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class HttpSessionStateContainer : IHttpSessionState { String _id; ISessionStateItemCollection _sessionItems; HttpStaticObjectsCollection _staticObjects; int _timeout; bool _newSession; HttpCookieMode _cookieMode; SessionStateMode _mode; bool _abandon; bool _isReadonly; SessionStateModule _stateModule; // used for optimized InProc session id callback public HttpSessionStateContainer( String id, ISessionStateItemCollection sessionItems, HttpStaticObjectsCollection staticObjects, int timeout, bool newSession, HttpCookieMode cookieMode, SessionStateMode mode, bool isReadonly) : this(null, id, sessionItems, staticObjects, timeout, newSession, cookieMode, mode, isReadonly) { if (id == null) { throw new ArgumentNullException("id"); } } internal HttpSessionStateContainer( SessionStateModule stateModule, string id, ISessionStateItemCollection sessionItems, HttpStaticObjectsCollection staticObjects, int timeout, bool newSession, HttpCookieMode cookieMode, SessionStateMode mode, bool isReadonly) { _stateModule = stateModule; _id = id; // If null, it means we're delaying session id reading _sessionItems = sessionItems; _staticObjects = staticObjects; _timeout = timeout; _newSession = newSession; _cookieMode = cookieMode; _mode = mode; _isReadonly = isReadonly; } internal HttpSessionStateContainer() { } /* * The Id of the session. */ public String SessionID { get { if (_id == null) { Debug.Assert(_stateModule != null, "_stateModule != null"); _id = _stateModule.DelayedGetSessionId(); } return _id; } } /* * The length of a session before it times out, in minutes. */ public int Timeout { get {return _timeout;} set { if (value <= 0) { throw new ArgumentException(SR.GetString(SR.Timeout_must_be_positive)); } if (value > SessionStateModule.MAX_CACHE_BASED_TIMEOUT_MINUTES && (Mode == SessionStateMode.InProc || Mode == SessionStateMode.StateServer)) { throw new ArgumentException( SR.GetString(SR.Invalid_cache_based_session_timeout)); } _timeout = value; } } /* * Is this a new session? */ ////// public bool IsNewSession { get {return _newSession;} } /* * Is session state in a separate process */ ///[To be supplied.] ////// public SessionStateMode Mode { get {return _mode;} } /* * Is session state cookieless? */ public bool IsCookieless { get { if (_stateModule != null) { // See VSWhidbey 399907 return _stateModule.SessionIDManagerUseCookieless; } else { // For container created by custom session state module, // sorry, we currently don't have a way to tell and thus we rely blindly // on cookieMode. return CookieMode == HttpCookieMode.UseUri; } } } public HttpCookieMode CookieMode { get {return _cookieMode;} } /* * Abandon the session. * */ ///[To be supplied.] ////// public void Abandon() { _abandon = true; } ///[To be supplied.] ////// public int LCID { // get { return Thread.CurrentThread.CurrentCulture.LCID; } set { Thread.CurrentThread.CurrentCulture = HttpServerUtility.CreateReadOnlyCultureInfo(value); } } ///[To be supplied.] ////// public int CodePage { // get { if (HttpContext.Current != null) return HttpContext.Current.Response.ContentEncoding.CodePage; else return Encoding.Default.CodePage; } set { if (HttpContext.Current != null) HttpContext.Current.Response.ContentEncoding = Encoding.GetEncoding(value); } } public bool IsAbandoned { get {return _abandon;} } public HttpStaticObjectsCollection StaticObjects { get { return _staticObjects;} } public Object this[String name] { get { return _sessionItems[name]; } set { _sessionItems[name] = value; } } ///[To be supplied.] ////// public Object this[int index] { get {return _sessionItems[index];} set {_sessionItems[index] = value;} } ///[To be supplied.] ////// public void Add(String name, Object value) { _sessionItems[name] = value; } ///[To be supplied.] ////// public void Remove(String name) { _sessionItems.Remove(name); } ///[To be supplied.] ////// public void RemoveAt(int index) { _sessionItems.RemoveAt(index); } ///[To be supplied.] ////// public void Clear() { _sessionItems.Clear(); } ///[To be supplied.] ////// public void RemoveAll() { Clear(); } ///[To be supplied.] ////// public int Count { get {return _sessionItems.Count;} } ///[To be supplied.] ////// public NameObjectCollectionBase.KeysCollection Keys { get {return _sessionItems.Keys;} } ///[To be supplied.] ////// public IEnumerator GetEnumerator() { return _sessionItems.GetEnumerator(); } ///[To be supplied.] ////// public void CopyTo(Array array, int index) { for (IEnumerator e = this.GetEnumerator(); e.MoveNext();) array.SetValue(e.Current, index++); } ///[To be supplied.] ////// public Object SyncRoot { get { return this;} } ///[To be supplied.] ////// public bool IsReadOnly { get { return _isReadonly;} } ///[To be supplied.] ////// public bool IsSynchronized { get { return false;} } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //[To be supplied.] ///// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* * HttpSessionState * * Copyright (c) 1998-1999, Microsoft Corporation * */ namespace System.Web.SessionState { using System.Threading; using System.Runtime.InteropServices; using System.Web; using System.Web.Util; using System.Collections; using System.Collections.Specialized; using System.Text; using System.Globalization; using System.Security.Permissions; [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class HttpSessionStateContainer : IHttpSessionState { String _id; ISessionStateItemCollection _sessionItems; HttpStaticObjectsCollection _staticObjects; int _timeout; bool _newSession; HttpCookieMode _cookieMode; SessionStateMode _mode; bool _abandon; bool _isReadonly; SessionStateModule _stateModule; // used for optimized InProc session id callback public HttpSessionStateContainer( String id, ISessionStateItemCollection sessionItems, HttpStaticObjectsCollection staticObjects, int timeout, bool newSession, HttpCookieMode cookieMode, SessionStateMode mode, bool isReadonly) : this(null, id, sessionItems, staticObjects, timeout, newSession, cookieMode, mode, isReadonly) { if (id == null) { throw new ArgumentNullException("id"); } } internal HttpSessionStateContainer( SessionStateModule stateModule, string id, ISessionStateItemCollection sessionItems, HttpStaticObjectsCollection staticObjects, int timeout, bool newSession, HttpCookieMode cookieMode, SessionStateMode mode, bool isReadonly) { _stateModule = stateModule; _id = id; // If null, it means we're delaying session id reading _sessionItems = sessionItems; _staticObjects = staticObjects; _timeout = timeout; _newSession = newSession; _cookieMode = cookieMode; _mode = mode; _isReadonly = isReadonly; } internal HttpSessionStateContainer() { } /* * The Id of the session. */ public String SessionID { get { if (_id == null) { Debug.Assert(_stateModule != null, "_stateModule != null"); _id = _stateModule.DelayedGetSessionId(); } return _id; } } /* * The length of a session before it times out, in minutes. */ public int Timeout { get {return _timeout;} set { if (value <= 0) { throw new ArgumentException(SR.GetString(SR.Timeout_must_be_positive)); } if (value > SessionStateModule.MAX_CACHE_BASED_TIMEOUT_MINUTES && (Mode == SessionStateMode.InProc || Mode == SessionStateMode.StateServer)) { throw new ArgumentException( SR.GetString(SR.Invalid_cache_based_session_timeout)); } _timeout = value; } } /* * Is this a new session? */ ////// public bool IsNewSession { get {return _newSession;} } /* * Is session state in a separate process */ ///[To be supplied.] ////// public SessionStateMode Mode { get {return _mode;} } /* * Is session state cookieless? */ public bool IsCookieless { get { if (_stateModule != null) { // See VSWhidbey 399907 return _stateModule.SessionIDManagerUseCookieless; } else { // For container created by custom session state module, // sorry, we currently don't have a way to tell and thus we rely blindly // on cookieMode. return CookieMode == HttpCookieMode.UseUri; } } } public HttpCookieMode CookieMode { get {return _cookieMode;} } /* * Abandon the session. * */ ///[To be supplied.] ////// public void Abandon() { _abandon = true; } ///[To be supplied.] ////// public int LCID { // get { return Thread.CurrentThread.CurrentCulture.LCID; } set { Thread.CurrentThread.CurrentCulture = HttpServerUtility.CreateReadOnlyCultureInfo(value); } } ///[To be supplied.] ////// public int CodePage { // get { if (HttpContext.Current != null) return HttpContext.Current.Response.ContentEncoding.CodePage; else return Encoding.Default.CodePage; } set { if (HttpContext.Current != null) HttpContext.Current.Response.ContentEncoding = Encoding.GetEncoding(value); } } public bool IsAbandoned { get {return _abandon;} } public HttpStaticObjectsCollection StaticObjects { get { return _staticObjects;} } public Object this[String name] { get { return _sessionItems[name]; } set { _sessionItems[name] = value; } } ///[To be supplied.] ////// public Object this[int index] { get {return _sessionItems[index];} set {_sessionItems[index] = value;} } ///[To be supplied.] ////// public void Add(String name, Object value) { _sessionItems[name] = value; } ///[To be supplied.] ////// public void Remove(String name) { _sessionItems.Remove(name); } ///[To be supplied.] ////// public void RemoveAt(int index) { _sessionItems.RemoveAt(index); } ///[To be supplied.] ////// public void Clear() { _sessionItems.Clear(); } ///[To be supplied.] ////// public void RemoveAll() { Clear(); } ///[To be supplied.] ////// public int Count { get {return _sessionItems.Count;} } ///[To be supplied.] ////// public NameObjectCollectionBase.KeysCollection Keys { get {return _sessionItems.Keys;} } ///[To be supplied.] ////// public IEnumerator GetEnumerator() { return _sessionItems.GetEnumerator(); } ///[To be supplied.] ////// public void CopyTo(Array array, int index) { for (IEnumerator e = this.GetEnumerator(); e.MoveNext();) array.SetValue(e.Current, index++); } ///[To be supplied.] ////// public Object SyncRoot { get { return this;} } ///[To be supplied.] ////// public bool IsReadOnly { get { return _isReadonly;} } ///[To be supplied.] ////// public bool IsSynchronized { get { return false;} } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.[To be supplied.] ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AccessibleObject.cs
- XmlSchemaExporter.cs
- GroupStyle.cs
- GridViewDeleteEventArgs.cs
- RenderData.cs
- KeyInterop.cs
- IntegerFacetDescriptionElement.cs
- NullNotAllowedCollection.cs
- SqlServer2KCompatibilityCheck.cs
- TransformCryptoHandle.cs
- AnnotationAuthorChangedEventArgs.cs
- MergePropertyDescriptor.cs
- BitmapEffectCollection.cs
- GridViewPageEventArgs.cs
- MouseBinding.cs
- HtmlInputHidden.cs
- Message.cs
- XmlSequenceWriter.cs
- StackOverflowException.cs
- DecoderReplacementFallback.cs
- InkCanvasSelection.cs
- DescendantQuery.cs
- MutexSecurity.cs
- CodeAccessPermission.cs
- BitmapEffectCollection.cs
- NamedElement.cs
- NullableBoolConverter.cs
- RuntimeCompatibilityAttribute.cs
- ToolboxComponentsCreatingEventArgs.cs
- ToolboxItemFilterAttribute.cs
- RSAPKCS1SignatureDeformatter.cs
- XamlTemplateSerializer.cs
- StreamWithDictionary.cs
- SchemaTypeEmitter.cs
- ContentHostHelper.cs
- XPathBinder.cs
- UIElement.cs
- userdatakeys.cs
- BaseParagraph.cs
- SqlDataSourceConfigureFilterForm.cs
- XmlDictionaryReaderQuotas.cs
- SchemaImporterExtensionElement.cs
- ResourceDescriptionAttribute.cs
- ConfigurationProperty.cs
- IndentTextWriter.cs
- SingleBodyParameterMessageFormatter.cs
- SmiEventStream.cs
- TableItemProviderWrapper.cs
- WebPartDisplayMode.cs
- EventLogEntryCollection.cs
- SizeAnimationClockResource.cs
- OutputCacheModule.cs
- XslTransform.cs
- RayHitTestParameters.cs
- SqlNamer.cs
- __Filters.cs
- SerializationEventsCache.cs
- CounterCreationDataConverter.cs
- CredentialCache.cs
- ApplicationException.cs
- Converter.cs
- Label.cs
- LayoutExceptionEventArgs.cs
- HasCopySemanticsAttribute.cs
- GlobalizationSection.cs
- WinFormsSpinner.cs
- NamespaceDecl.cs
- ChineseLunisolarCalendar.cs
- BoundField.cs
- WebEvents.cs
- ConfigXmlComment.cs
- TypeUtil.cs
- SimplePropertyEntry.cs
- DataProtection.cs
- ICollection.cs
- versioninfo.cs
- ResolveDuplexAsyncResult.cs
- HTTPNotFoundHandler.cs
- SeparatorAutomationPeer.cs
- TitleStyle.cs
- PolyQuadraticBezierSegment.cs
- SplineKeyFrames.cs
- MappingSource.cs
- KeyValueConfigurationElement.cs
- DataGridViewDesigner.cs
- XMLUtil.cs
- GraphicsPath.cs
- DataTableExtensions.cs
- DiagnosticTrace.cs
- LightweightEntityWrapper.cs
- DataRecordObjectView.cs
- WasEndpointConfigContainer.cs
- SQLDateTimeStorage.cs
- DataGridTextBox.cs
- DispatchWrapper.cs
- InstanceDescriptor.cs
- DataGridViewColumnEventArgs.cs
- EventProperty.cs
- DatagridviewDisplayedBandsData.cs
- TransportReplyChannelAcceptor.cs