2007-09-18 Marek Habersack * SessionStateModule.cs: preserve the query part of the url when redirecting with cookieless sessions active. Fixes bug #318790 2007-08-08 Marek Habersack * SessionDictionary.cs: do not use lock (this), replace it with lock (this_object), where this_object is an instance variable. Prevents deadlocks in situation when external code locks on the class instance. 2007-06-20 Marek Habersack * SessionInProcHandler.cs: use HttpRuntime.InternalCache to keep private entries. 2007-01-26 Hubert FONGARNAND * SessionSQLServerHandler.cs: differentiate session between applications this require to add an AppName column to the aspstatetempsessions table 2007-01-20 Miguel de Icaza * SessionDictionary.cs: Removed unused variable (dirty). 2006-12-20 Marek Habersack * SessionStateServerHandler.cs: relay on the SessionId random generator. * SessionId.cs: moved the random number generator to here. * SessionInProcHandler.cs: use this implementation only for the 1.x profile. * SessionStateModule.cs: use this implementation only for the 1.x profile. * SessionSQLServerHandler.cs: use this implementation only for the 1.x profile. * SessionInProcHandler.jvm.cs: use this implementation only for the 1.x profile. * StateServerItem.cs: use this implementation only for the 1.x profile. Also use UTC for access times. * HttpSessionState.cs: use this implementation only for the 1.x profile. * RemoteStateServer.cs: use this implementation only for the 1.x profile. 2006-12-06 Robert Jordan * SessionSQLServerHandler.cs: Prepare the SQL statements. Patch from Hubert FONGARNAND. Fixes bug #80170. 2006-10-12 Hubert FONGARNAND Patch from Hubert FONGARNAND * SessionSQLServerHandler.cs (selectCommand): Instead of using SELECT * for pulling the data out of the ASPStateTempSessions, use the explicit column names. This allows users to change the table and not have any undesired side effects for our code. (ReadBytes): This patch corrects a bug too in ReadBytes. The index parameter was not properly used when calculating the size of the data. 2006-09-03 Robert Jordan * SessionSQLServerHandler.cs: persist and handle the "timeout" and "expire" properties of the session. Fixes bug #78281. Patch by Boris Dores . 2006-08-08 Vladimir Krasnov * SessionInProcHandler.jvm.cs: * SessionStateModule.cs: added NET_2_0 parts into TARGET_J2EE 2006-07-20 Gonzalo Paniagua Javier * RemoteStateServer.cs: make it inmortal. 2006-07-20 Gonzalo Paniagua Javier * RemoteStateServer.cs: use a Cache instead of a Hashtable so that we get sliding expiration for free. * StateServerItem.cs: expose 'timeout' through a property. 2006-06-15 Gonzalo Paniagua Javier * SessionId.cs: make the length of the SessionID 24, as MS. 2006-04-19 Sebastien Pouliot * SessionConfig.cs: Avoid a cast. * SessionDictionary.cs: Remove unused internal methods. * SessionId.cs: Const-ify internal/private values. * SessionStateModule.cs: Const-ify internal/private values. 2006-03-15 Gonzalo Paniagua Javier * SessionSQLServerHandler.cs: if the connection to the DB is lost, retry the select/update/insert/delete commands after reconnecting. Fixes bug #77785. 2006-03-04 Robert Jordan * SessionSQLServerHandler.cs: make SQL statements and parameters provider independent/configurable. * SessionSQLServerHandler.cs (SelectSession): properly dispose the data reader. Fixes bug #77698. 2006-02-28 Chris Toshok * IStateRuntime.cs: wrap new interface method with NET_2_0. 2006-02-28 Chris Toshok * SessionStateActions.cs: oops, actually rename the enum, not just the file. 2006-02-28 Chris Toshok * SessionStateActions.cs: rename SessionStateActionFlags to this. * ISessionIDManager.cs: rename ISessionIDModule to this. * IStateRuntime.cs: corcompare work. 2006-02-01 Chris Toshok * SessionStateServerHandler.cs: CONFIGURATION_2_0 => NET_2_0. * SessionSQLServerHandler.cs: same. * SessionStateModule.cs: same. * ISessionHandler.cs: same. * SessionInProcHandler.cs: same. 2006-01-18 Konstantin Triger * HttpSessionState.jvm.cs: correcting serialization conditions. 2006-01-09 Konstantin Triger * HttpSessionState.jvm.cs: merging HttpSessionState.cs@@/main/19-24 2005-11-28 Chris Toshok * SessionStateModule.cs: CONFIGURATION_2_0 work. * SessionSQLServerHandler.cs: CONFIGURATION_2_0 work. * SessionInProcHandler.cs: CONFIGURATION_2_0 work. * SessionStateServerHandler.cs: CONFIGURATION_2_0 work. * ISessionHandler.cs (Init): @config is a SessionStateSection if CONFIGURATION_2_0. 2005-09-22 Gonzalo Paniagua Javier * SessionStateModule.cs: use the new funciton in HttpRequest. 2005-09-22 Jackson Harper * SessionStateModule.cs: Use a concat instead of a format (mucho faster). 2005-09-21 Gonzalo Paniagua Javier * SessionStateModule.cs: fix compilation warnings and use the application path for the cookie path. This is a temporary fix for 76172. * SessionId.cs: don't access the cookie collection twice. 2005-09-09 Sebastien Pouliot * HttpSessionState.cs: Added LinkDemand for Minimal. * IHttpSessionState.cs: Renamed IsCookieLess to IsCookieless. * ISessionStateItemCollection.cs: Added ICollection and IEnumerable. * SessionStateMode.cs: Added Custom (2.0). * SessionStateModule.cs: Use RandomNumberGenerator.Create to create the RNG. Assert EnvironmentPermission to read MONO_XSP_STATIC_SESSION. Added LinkDemand for Minimal. * StateRuntime.cs: Added LinkDemand for Minimal, new ProcessRequest override (2.0) and security attributes on methods. 2005-09-08 Gonzalo Paniagua Javier * SessionStateModule.cs: raise the Start event for new sessions. 2005-09-08 Eyal Alaluf * HttpSessionState.jvm.cs - fixed serialization when we want to serialize an empty session. 2005-09-06 Gonzalo Paniagua Javier * SessionStateModule.cs: Only invoke the End event using the new method in HttpApplicationFactory and when session state mode is InProc. 2005-09-01 Eyal Alaluf * SessionStateModule.cs: Under TARGET_J2EE we let the J2EE app server handle session persistence, so we don't support SQL/Remoting session servers at the ASP.Net level. 2005-08-30 Gonzalo Paniagua Javier * SessionStateModule.cs: added lock around 'config'. * SessionInProcHandler.cs: when inserting in the the session in the Cache, use sliding expiration only. 2005-08-15 Miguel de Icaza * SessionStateModule.cs: Make this use the synch api as the module was synchronous anyways 2005-06-25 Gonzalo Paniagua Javier * SessionInProcHandler.cs: use cache.InsertPrivate. * SessionDictionary.cs: fix typo that made Clone useless. 2005-06-08 Ilya Kharmatsky * SessionStateMode.cs: Added TARGET_J2EE directive in order to provide in J2EE configuration additional mode - J2EE * SessionStateModule.cs: Added TARGET_JVM directives in order to resolve unsupported in Ghrasshopper "static variables" issue (When static variable are stored in general place, instead of storing such variables per AppDomain). 2005-05-27 Gonzalo Paniagua Javier * RemoteStateServer.cs: * HttpSessionState.cs: * SessionSQLServerHandler.cs: * SessionInProcHandler.cs: * SessionStateServerHandler.cs: remove abandoned sessions in the ReleseRequest state. Fixes bug #75051. 2005-04-20 Gonzalo Paniagua Javier * SessionSQLServerHandler.cs: * SessionStateServerHandler.cs: removed warnigs. 2005-03-02 Gonzalo Paniagua Javier * SessionStateModule.cs: * SessionId.cs: share the same RNG for all the instances of SessionStateModule. 2005-02-05 Gonzalo Paniagua Javier * SessionStateModule.cs: hack that makes static files work on sites that use the Session object in global.asax. You need to set MONO_XSP_STATIC_SESSION to enable it and by dong so you will lose a bit of performance when serving static files. Fixes bug #71133. 2004-11-30 Gonzalo Paniagua Javier * SessionStateModule.cs: set the path modifier when using cookie-less sessions. 2004-10-06 Gonzalo Paniagua Javier * SessionStateModule.cs: use SetCurrentExePath instead of SetFilePath. 2004-09-09 Gonzalo Paniagua Javier * HttpSessionState.cs: don't share static session objects declared in the application file across the application, but on a per-session basis. Fixes bug #65446. 2004-08-31 Sanjay Gupta * SessionStateItemExpireCallback.cs: Explicit modifier "sealed" not required in definition. 2004-08-09 Sanjay Gupta * SessionStateItemExpireCallback.cs: Added delegate. * SessionStateStoreData.cs: Added a new class. 2004-08-05 Sanjay Gupta * IHttpSessionState.cs: * ISessionIDModule.cs: * ISessionStateItemCollection.cs: Added new interfaces. 2004-08-04 Sanjay Gupta * SessionStateActionFlags.cs: Added enumeration. 2004-07-07 Juraj Skripsky * SessionStateModule.cs: set path in session cookie to application path. 2004-06-18 Gert Driesen * IStateRuntime.cs: added missing marshalling attributes 2004-06-11 Gonzalo Paniagua Javier * SessionSQLServerHandler.cs: * SessionStateServerHandler.cs: * ISessionHandler.cs: added new parameter to Init. * SessionInProcHandler.cs: use the HttpRuntime cache to store the sessions and handle expiration. * SessionStateModule.cs: added OnSessionRemoved internal method that is called whenever a session expires or is removed. 2004-05-05 Gonzalo Paniagua Javier * HttpSessionState.cs: added Clone (), which makes and exact copy but with a cloned SessionDictionary. When EnableSessionState is set to ReadOnly, we can modify the collection, but changes are not propagated. * ISessionHandler.cs: changed signature of UpdateContext(). * SessionDictionary.cs: added Clone. * SessionInProcHandler.cs: * SessionSQLServerHandler.cs: * SessionStateServerHandler.cs: don't create a new session if the handler do not require it. UpdateContext() now returns an HttpSessionState to the module. * SessionStateModule.cs: removed IsReadOnly as it is now passed as a parameter to the session handler. If the session is read-only, clone it so that it can be changed but changes are not kept. In short, we don't create session objects when not required and we honor the ReadOnly sessions. 2004-02-09 Gonzalo Paniagua Javier * SessionInProcHandler.cs: * SessionSQLServerHandler.cs: * SessionStateServerHandler.cs: when creating the HttpSessionStateObjets, use the session objects that we know about in HttpApplicationFactory. 2004-01-23 Gonzalo Paniagua Javier * HttpSessionState.cs: * SessionInProcHandler.cs: IsNewSession doesn't have a public setter. * SessionStateModule.cs: doesn't implement IRequiresSessionState. * StateServerItem.cs: not public. 2004-01-05 Alon Gazit * SessionDictionary.cs: can't set item's value to null if the item is new. 2003-12-25 Jackson Harper * SessionStateModule.cs: Handle SessionStateMode.Off properly in Init. Only set session cookies if a new session is created. This fixes bug #52501. 2003-12-18 Gonzalo Paniagua Javier * IStateRuntime.cs: * SessionStateModule.cs: class status based fixes. 2003-12-05 Jackson Harper * SessionStateModule.cs: Add readonly property for readonly sessions. This fixes bug #51647. * SessionInProcHandler.cs: * SessionSQLServerHandler.cs: * SessionStateServerHandler.cs: Cleanup params for HttpSessionState ctor. Make sure to always set is new, cookieless, and readonly properly. 2003-12-03 Jackson Harper * SessionStateModule.cs: If using cookieless sessions add an onbegin request handler that parsers out session ids and rewrites the path. Also redirect to a url with an embedded session id if we are creating a new cookieless session. * SesionInProcHandler.cs: * SessionSQLServerHandler.cs: * SessionStateServerHandler.cs: Use SessionId::Lookup to lookup session ids, don't set the session id cookie anymore. That is handled by the SessionStateModule. * SessionId.cs: Add method for looking up session ids, add some constants. 2003-11-26 Jackson Harper * SessionSQLServerHandler.cs: Fix typo in param name. 2003-11-25 Jackson Harper * RemoteStateServer.cs: Update the session dictionary data and the static objects data. * SessionDictionary.cs: Remove type serialization methods, these have been moved to a utility class. Add convenience methods for converting to/from byte arrays. * SessionSQLServerHandler.cs: * SessionStateServerHandler.cs: Save/Restore static objects. Use new to/from byte array methods. * StateServerItem.cs: Hold static objects data. 2003-11-24 Jackson Harper * SessionStateServerHandler.cs: Parse connection string. Need to look into what MS allows/doesn't allow better. 2003-11-24 Jackson Harper * RemoteStateServer.cs: The state server object that will reside on the server and store session data and ids. * StateServerItem.cs: Container for session data. * SessionStateServerHandler.cs: Handler that communicates with the StateServer so sessions can be stored out of process. * SessionStateModule.cs: Allow state server mode. 2003-11-13 Jackson Harper * SessionInProcHandler.cs: Use AppDomain.SetData so data is available across all threads. Set the path of session id cookies. Patch by Mohammad DAMT. Fixes bug #50922. 2003-11-06 Jackson Harper * ISessionHandler.cs: Pass the SessionStateModule to handlers when updating. * SessionSqlServerHandler.cs: * SessionInProcHandler.cs: Accept SessionStateModule when updating. Use new SessionId.Create method for creating session ids. * SessionStateModule.cs: Add a random number generator that will be used for creating session ids. Pass this to handlers when updating. * SessionId.cs: New class for creating session ids. 2003-11-03 Jackson Harper * HttpSessionState.cs (CopyTo): Copy values not keys. Patch by Yaron Shkop. 2003-11-03 Jackson Harper * HttpSessionState.cs: Make the SessionDictionary accessable * ISessionHandler.cs: Add method to update the session state data in the handler. Pass the session config to handlers when initializing. * SessionConfig.cs: Add StateNetworkTimeout * SessionInProcHandler.cs: Updates because interface has changed, all functionality is the same. * SessionStateModule.cs: Get new config items, allow SQLServer session manager type. Update session handlers when the session state has been released. * SessionStateSectionHandler.cs: Add StateNetworkTimeout * SessionSQLServerHandler.cs: New class allows sessions to be stored in a database. 2003-10-28 Jackson Harper * HttpSessionState.cs: Do not allow timeout to be set to less then one. 2003-10-28 Jackson Harper * SessionInProcHandler.cs: Compute timeouts correctly. DateTime.Milliseconds is the just the milliseconds part of the time, it is not the entire time as milliseconds. 2003-10-13 Ben Maurer * SessionStateModule.cs: prevent Context.State from being null if the module is inited in another HttpApplication. Fixes #49569. 2003-07-30 Andreas Nahr * IStateRuntime.cs: New interface class * StateRuntime.cs: New class - stubbed out 2003-07-17 Andreas Nahr * SessionInProcHandler.cs: Made these internal to fix signature and building CLS-compliant 2003-07-08 Gonzalo Paniagua Javier * SessionDictionary.cs: locking. * SessionInProcHandler.cs: use the new method instead of the setter. 2003-07-01 Gonzalo Paniagua Javier * ISessionHandler.cs: * SessionInProcHandler.cs: * SessionStateModule.cs: UpdateContext returns a bool indicating if we started a new session. Only call session start event if that is true. 2003-05-13 Gonzalo Paniagua Javier * SessionStateModule.cs: fire application start and session start/end events. 2003-03-31 Stefan Görling * HttpSessionState.cs: * ISessionHandler.cs: * SessionInProcHandler.cs: * SessionStateModule.cs: initial implementation of InProc session. 2003-03-13 Gonzalo Paniagua Javier * HttpSessionState.cs: implemented CodePage. * SessionStateModule.cs: initial stuff to make it work. 2003-03-04 Gonzalo Paniagua Javier * HttpSessionState.cs: reworked to use SessionDictionary. * SessionDictionary.cs: implemented serialization/deserialization. 2003-03-03 Gonzalo Paniagua Javier * SessionConfig.cs: * SessionStateSectionHandler.cs: new files to read configuration. 2002-10-08 Gonzalo Paniagua Javier * SessionStateModule.cs: don't throw exception. Just for testing the configuration stuff until we implement this. 2002-08-18 Gonzalo Paniagua Javier * HttpSessionState.cs: IsAbandoned is internal. * SessionDictionary.cs: scope fixes. * SessionStateModule.cs: added events. 2002-06-30 Gonzalo Paniagua Javier * System.Web.SessionState/HttpSessionState.cs: Fixes based on class status page: - Add attributes (DefaultEvent, ParseChildren). - Fix declarations. - Explicitly implement some interfaces (IPostBackDataHandler and IPostBackEventHandler). - Implemented some missing methods. 2002-06-23 Gonzalo Paniagua Javier * HttpSessionState.cs: implemented more methods/properties. * SessionDictionary.cs: New file. 2002-06-04 Gonzalo Paniagua Javier * System.Web.SessionState/HttpSessionState.cs: * System.Web.SessionState/SessionStateModule.cs: new files with some implementation and the rest stubbed. 2002-06-03 Gonzalo Paniagua Javier * IReadOnlySessionState.cs: * IRequiresSessionState.cs: * SessionStateMode.cs: new files.