2009-04-03  Marek Habersack  <mhabersack@novell.com>

	* SessionSQLServerHandler.cs: recreate connection after database
	became unavailable but the session handler is still alive. Fixes
	bug #491508. Patch from Hubert Fongarnand
	<informatique.internet@fiducial.fr>, thanks!

2008-10-21  Marek Habersack  <mhabersack@novell.com>

	* SessionStateModule.cs: OnAcquireState should set up a session
	only if the handler requires it. Fixes bug #437289

2008-07-29  Marek Habersack  <mhabersack@novell.com>

	* SessionStateModule.cs: use Request.FilePath instead of
	Request.BaseVirtualDirectory to retrieve the cookie-less session
	identifier. Fixes bug #397418

2008-06-04  Marek Habersack  <mhabersack@novell.com>

	* SessionStateModule.cs: set application path modifier string to
	the bare session ID.

2008-05-30  Marek Habersack  <mhabersack@novell.com>

	* SessionStateModule.cs: do not use synthetized event accessors
	(to avoid locks).

2008-05-23  Marek Habersack  <mhabersack@novell.com>

	* SessionInProcHandler.cs, RemoteStateServer.cs: update for
	internal API change in System.Web.Caching.Cache.

2008-04-28  Marek Habersack  <mhabersack@novell.com>

	* ISessionHandler.cs: added new method, Touch, to reset the item
	timeout.

	* SessionStateServerHandler.cs, SessionSQLServerHandler.cs,
	SessionInProcHandler.cs: added implementation of the
	ISessionHandler Touch method, to reset item timeout. Fixes bug
	#382644

	* StateServerItem.cs: made the Timeout property writable.

	* SessionStateModule.cs: reset the item timeout after
	OnSessionStart has returned. Fixes bug #382644

	* RemoteStateServer.cs: added a method to reset item timeout.

2007-12-13  Marek Habersack  <mhabersack@novell.com>

	* SessionId.cs: speed optimization - use String.Concat instead of
	String.Format in some cases.

2007-11-23  Marek Habersack  <mhabersack@novell.com>

	* SessionSQLServerHandler.cs: Remove a memory leak and improve
	performance by preparing SQL statements and caching them for later
	reuse. Patch from Hubert FONGARNAND
	<informatique.internet@fiducial.fr>, thanks!

2007-11-06  Marek Habersack  <mhabersack@novell.com>

	* SessionStateServerHandler.cs: properly retrieve session id in
	the cookieless mode. Prevents endless browser redirection.

2007-09-18  Marek Habersack  <mhabersack@novell.com>

	* SessionStateModule.cs: preserve the query part of the url when
	redirecting with cookieless sessions active. Fixes bug #318790

2007-08-08  Marek Habersack  <mhabersack@novell.com>

	* 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  <mhabersack@novell.com>

	* SessionInProcHandler.cs: use HttpRuntime.InternalCache to keep
	private entries.

2007-01-26  Hubert FONGARNAND <informatique.internet@fiducial.fr>

	* SessionSQLServerHandler.cs: differentiate session between applications
	this require to add an AppName column to the aspstatetempsessions table

2007-01-20  Miguel de Icaza  <miguel@novell.com>

	* SessionDictionary.cs: Removed unused variable (dirty).

2006-12-20  Marek Habersack  <grendello@gmail.com>

	* 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  <robertj@gmx.net>

	* SessionSQLServerHandler.cs: Prepare the SQL statements.
	Patch from Hubert FONGARNAND. Fixes bug #80170.

2006-10-12 Hubert FONGARNAND <informatique.internet@fiducial.fr>

	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  <robertj@gmx.net>

	* SessionSQLServerHandler.cs: persist and handle the "timeout" and
	"expire" properties of the session. Fixes bug #78281.
	Patch by Boris Dores <babal@via.ecp.fr>.

2006-08-08  Vladimir Krasnov  <vladimirk@mainsoft.com>

	* SessionInProcHandler.jvm.cs:
	* SessionStateModule.cs: added NET_2_0 parts into TARGET_J2EE

2006-07-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* RemoteStateServer.cs: make it inmortal.

2006-07-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* 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 <gonzalo@ximian.com>

	* SessionId.cs: make the length of the SessionID 24, as MS.

2006-04-19  Sebastien Pouliot  <sebastien@ximian.com>

	* 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 <gonzalo@ximian.com>

	* 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  <robertj@gmx.net>

	* 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  <toshok@ximian.com>

	* IStateRuntime.cs: wrap new interface method with NET_2_0.

2006-02-28  Chris Toshok  <toshok@ximian.com>

	* SessionStateActions.cs: oops, actually rename the enum, not just
	the file.

2006-02-28  Chris Toshok  <toshok@ximian.com>

	* SessionStateActions.cs: rename SessionStateActionFlags to this.

	* ISessionIDManager.cs: rename ISessionIDModule to this.

	* IStateRuntime.cs: corcompare work.

2006-02-01  Chris Toshok  <toshok@ximian.com>

	* 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 <kostat@mainsoft.com>

	* HttpSessionState.jvm.cs: correcting serialization conditions.

2006-01-09  Konstantin Triger <kostat@mainsoft.com>

	* HttpSessionState.jvm.cs: merging HttpSessionState.cs@@/main/19-24

2005-11-28  Chris Toshok  <toshok@ximian.com>

	* 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 <gonzalo@ximian.com>

	* SessionStateModule.cs: use the new funciton in HttpRequest.

2005-09-22  Jackson Harper  <jackson@ximian.com>

	* SessionStateModule.cs: Use a concat instead of a format (mucho
	faster).

2005-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* 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  <sebastien@ximian.com>

	* 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 <gonzalo@ximian.com>

	* SessionStateModule.cs: raise the Start event for new sessions.

2005-09-08 Eyal Alaluf <eyala@mainsoft.com>
	* HttpSessionState.jvm.cs - fixed serialization when we want to serialize
	  an empty session.

2005-09-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* 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 <eyala@mainsoft.com>
	* 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 <gonzalo@ximian.com>

	* 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  <miguel@novell.com>

	* SessionStateModule.cs: Make this use the synch api as the module
	was synchronous anyways

2005-06-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* SessionInProcHandler.cs: use cache.InsertPrivate.
	* SessionDictionary.cs: fix typo that made Clone useless.

2005-06-08 Ilya Kharmatsky <ilyak-at-mainsoft.com>

	* 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 <gonzalo@ximian.com>

	* 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 <gonzalo@ximian.com>

	* SessionSQLServerHandler.cs:
	* SessionStateServerHandler.cs: removed warnigs.

2005-03-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* SessionStateModule.cs:
	* SessionId.cs: share the same RNG for all the instances of
	SessionStateModule.

2005-02-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* 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 <gonzalo@ximian.com>

	* SessionStateModule.cs: set the path modifier when using cookie-less
	sessions.

2004-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* SessionStateModule.cs: use SetCurrentExePath instead of SetFilePath.

2004-09-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* 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 <gsanjay@novell.com>

	* SessionStateItemExpireCallback.cs: Explicit modifier "sealed" not 
	required in definition.

2004-08-09  Sanjay Gupta <gsanjay@novell.com>

	* SessionStateItemExpireCallback.cs: Added delegate.
	* SessionStateStoreData.cs: Added a new class.

2004-08-05  Sanjay Gupta <gsanjay@novell.com>

	* IHttpSessionState.cs: 
	* ISessionIDModule.cs:
	* ISessionStateItemCollection.cs: Added new interfaces.

2004-08-04  Sanjay Gupta <gsanjay@novell.com>

	* SessionStateActionFlags.cs: Added enumeration.

2004-07-07  Juraj Skripsky <juraj@hotfeet.ch>

	* SessionStateModule.cs: set path in session cookie to application
	path.

2004-06-18  Gert Driesen <drieseng@users.sourceforge.net>

	* IStateRuntime.cs: added missing marshalling attributes

2004-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* 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 <gonzalo@ximian.com>

	* 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 <gonzalo@ximian.com>

	* 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 <gonzalo@ximian.com>

	* 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 <along@mainsoft.com>

	* SessionDictionary.cs: can't set item's value to null if the item is
	new.

2003-12-25  Jackson Harper <jackson@ximian.com>

	* 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 <gonzalo@ximian.com>

	* IStateRuntime.cs:
	* SessionStateModule.cs: class status based fixes.

2003-12-05  Jackson Harper <jackson@ximian.com>

	* 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 <jackson@ximian.com>

	* 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 <jackson@ximian.com>

	* SessionSQLServerHandler.cs: Fix typo in param name.
	
2003-11-25  Jackson Harper <jackson@ximian.com>

	* 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 <jackson@ximian.com>

	* SessionStateServerHandler.cs: Parse connection string. Need to
	look into what MS allows/doesn't allow better.
	
2003-11-24  Jackson Harper <jackson@ximian.com>

	* 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 <jackson@ximian.com>

	* 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 <jackson@ximian.com>

	* 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 <jackson@ximian.com>

	* HttpSessionState.cs (CopyTo): Copy values not keys. Patch by Yaron Shkop.
	
2003-11-03 Jackson Harper <jackson@ximian.com>

	* 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 <jackson@ximian.com>

	* HttpSessionState.cs: Do not allow timeout to be set to less then
	one.
	
2003-10-28 Jackson Harper <jackson@ximian.com>

	* 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  <bmaurer@users.sourceforge.net>

	* SessionStateModule.cs: prevent Context.State from being null if
	the module is inited in another HttpApplication. Fixes #49569.

2003-07-30  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* IStateRuntime.cs: New interface class
	* StateRuntime.cs: New class - stubbed out

2003-07-17  Andreas Nahr <ClassDevelopment@A-SoftTech.com>

	* SessionInProcHandler.cs: Made these internal to fix signature and building CLS-compliant

2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* SessionDictionary.cs: locking.

	* SessionInProcHandler.cs: use the new method instead of the setter.

2003-07-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* 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 <gonzalo@ximian.com>

	* SessionStateModule.cs: fire application start and session start/end
	events.

2003-03-31  Stefan Görling <stefan@gorling.se>

	* HttpSessionState.cs:
	* ISessionHandler.cs:
	* SessionInProcHandler.cs:
	* SessionStateModule.cs: initial implementation of InProc session.

2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* HttpSessionState.cs: implemented CodePage.

	* SessionStateModule.cs: initial stuff to make it work.

2003-03-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* HttpSessionState.cs: reworked to use SessionDictionary.
	* SessionDictionary.cs: implemented serialization/deserialization.

2003-03-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* SessionConfig.cs:
	* SessionStateSectionHandler.cs: new files to read <sessionState>
	configuration.

2002-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* SessionStateModule.cs: don't throw exception.  Just for testing the
	configuration stuff until we implement this.

2002-08-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* HttpSessionState.cs: IsAbandoned is internal.
	* SessionDictionary.cs: scope fixes.
	* SessionStateModule.cs: added events.

2002-06-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* 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 <gonzalo@ximian.com>

	* HttpSessionState.cs: implemented more methods/properties.
	* SessionDictionary.cs: New file.

2002-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* 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 <gonzalo@ximian.com>

	* IReadOnlySessionState.cs:
	* IRequiresSessionState.cs:
	* SessionStateMode.cs: new files.

