ChangeLog 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589
  1. 2007-12-13 Marek Habersack <[email protected]>
  2. * SessionId.cs: speed optimization - use String.Concat instead of
  3. String.Format in some cases.
  4. 2007-11-23 Marek Habersack <[email protected]>
  5. * SessionSQLServerHandler.cs: Remove a memory leak and improve
  6. performance by preparing SQL statements and caching them for later
  7. reuse. Patch from Hubert FONGARNAND
  8. <[email protected]>, thanks!
  9. 2007-11-06 Marek Habersack <[email protected]>
  10. * SessionStateServerHandler.cs: properly retrieve session id in
  11. the cookieless mode. Prevents endless browser redirection.
  12. 2007-09-18 Marek Habersack <[email protected]>
  13. * SessionStateModule.cs: preserve the query part of the url when
  14. redirecting with cookieless sessions active. Fixes bug #318790
  15. 2007-08-08 Marek Habersack <[email protected]>
  16. * SessionDictionary.cs: do not use lock (this), replace it
  17. with lock (this_object), where this_object is an instance
  18. variable. Prevents deadlocks in situation when external code locks
  19. on the class instance.
  20. 2007-06-20 Marek Habersack <[email protected]>
  21. * SessionInProcHandler.cs: use HttpRuntime.InternalCache to keep
  22. private entries.
  23. 2007-01-26 Hubert FONGARNAND <[email protected]>
  24. * SessionSQLServerHandler.cs: differentiate session between applications
  25. this require to add an AppName column to the aspstatetempsessions table
  26. 2007-01-20 Miguel de Icaza <[email protected]>
  27. * SessionDictionary.cs: Removed unused variable (dirty).
  28. 2006-12-20 Marek Habersack <[email protected]>
  29. * SessionStateServerHandler.cs: relay on the SessionId random
  30. generator.
  31. * SessionId.cs: moved the random number generator to here.
  32. * SessionInProcHandler.cs: use this implementation only for the 1.x
  33. profile.
  34. * SessionStateModule.cs: use this implementation only for the 1.x
  35. profile.
  36. * SessionSQLServerHandler.cs: use this implementation only for the 1.x
  37. profile.
  38. * SessionInProcHandler.jvm.cs: use this implementation only for the 1.x
  39. profile.
  40. * StateServerItem.cs: use this implementation only for the 1.x
  41. profile. Also use UTC for access times.
  42. * HttpSessionState.cs: use this implementation only for the 1.x
  43. profile.
  44. * RemoteStateServer.cs: use this implementation only for the 1.x
  45. profile.
  46. 2006-12-06 Robert Jordan <[email protected]>
  47. * SessionSQLServerHandler.cs: Prepare the SQL statements.
  48. Patch from Hubert FONGARNAND. Fixes bug #80170.
  49. 2006-10-12 Hubert FONGARNAND <[email protected]>
  50. Patch from Hubert FONGARNAND
  51. * SessionSQLServerHandler.cs (selectCommand): Instead of using
  52. SELECT * for pulling the data out of the ASPStateTempSessions, use
  53. the explicit column names. This allows users to change the table
  54. and not have any undesired side effects for our code.
  55. (ReadBytes): This patch corrects a bug too in ReadBytes. The index parameter
  56. was not properly used when calculating the size of the data.
  57. 2006-09-03 Robert Jordan <[email protected]>
  58. * SessionSQLServerHandler.cs: persist and handle the "timeout" and
  59. "expire" properties of the session. Fixes bug #78281.
  60. Patch by Boris Dores <[email protected]>.
  61. 2006-08-08 Vladimir Krasnov <[email protected]>
  62. * SessionInProcHandler.jvm.cs:
  63. * SessionStateModule.cs: added NET_2_0 parts into TARGET_J2EE
  64. 2006-07-20 Gonzalo Paniagua Javier <[email protected]>
  65. * RemoteStateServer.cs: make it inmortal.
  66. 2006-07-20 Gonzalo Paniagua Javier <[email protected]>
  67. * RemoteStateServer.cs: use a Cache instead of a Hashtable so that we
  68. get sliding expiration for free.
  69. * StateServerItem.cs: expose 'timeout' through a property.
  70. 2006-06-15 Gonzalo Paniagua Javier <[email protected]>
  71. * SessionId.cs: make the length of the SessionID 24, as MS.
  72. 2006-04-19 Sebastien Pouliot <[email protected]>
  73. * SessionConfig.cs: Avoid a cast.
  74. * SessionDictionary.cs: Remove unused internal methods.
  75. * SessionId.cs: Const-ify internal/private values.
  76. * SessionStateModule.cs: Const-ify internal/private values.
  77. 2006-03-15 Gonzalo Paniagua Javier <[email protected]>
  78. * SessionSQLServerHandler.cs: if the connection to the DB is lost, retry
  79. the select/update/insert/delete commands after reconnecting.
  80. Fixes bug #77785.
  81. 2006-03-04 Robert Jordan <[email protected]>
  82. * SessionSQLServerHandler.cs: make SQL statements and parameters
  83. provider independent/configurable.
  84. * SessionSQLServerHandler.cs (SelectSession): properly dispose
  85. the data reader. Fixes bug #77698.
  86. 2006-02-28 Chris Toshok <[email protected]>
  87. * IStateRuntime.cs: wrap new interface method with NET_2_0.
  88. 2006-02-28 Chris Toshok <[email protected]>
  89. * SessionStateActions.cs: oops, actually rename the enum, not just
  90. the file.
  91. 2006-02-28 Chris Toshok <[email protected]>
  92. * SessionStateActions.cs: rename SessionStateActionFlags to this.
  93. * ISessionIDManager.cs: rename ISessionIDModule to this.
  94. * IStateRuntime.cs: corcompare work.
  95. 2006-02-01 Chris Toshok <[email protected]>
  96. * SessionStateServerHandler.cs: CONFIGURATION_2_0 => NET_2_0.
  97. * SessionSQLServerHandler.cs: same.
  98. * SessionStateModule.cs: same.
  99. * ISessionHandler.cs: same.
  100. * SessionInProcHandler.cs: same.
  101. 2006-01-18 Konstantin Triger <[email protected]>
  102. * HttpSessionState.jvm.cs: correcting serialization conditions.
  103. 2006-01-09 Konstantin Triger <[email protected]>
  104. * HttpSessionState.jvm.cs: merging HttpSessionState.cs@@/main/19-24
  105. 2005-11-28 Chris Toshok <[email protected]>
  106. * SessionStateModule.cs: CONFIGURATION_2_0 work.
  107. * SessionSQLServerHandler.cs: CONFIGURATION_2_0 work.
  108. * SessionInProcHandler.cs: CONFIGURATION_2_0 work.
  109. * SessionStateServerHandler.cs: CONFIGURATION_2_0 work.
  110. * ISessionHandler.cs (Init): @config is a SessionStateSection if
  111. CONFIGURATION_2_0.
  112. 2005-09-22 Gonzalo Paniagua Javier <[email protected]>
  113. * SessionStateModule.cs: use the new funciton in HttpRequest.
  114. 2005-09-22 Jackson Harper <[email protected]>
  115. * SessionStateModule.cs: Use a concat instead of a format (mucho
  116. faster).
  117. 2005-09-21 Gonzalo Paniagua Javier <[email protected]>
  118. * SessionStateModule.cs: fix compilation warnings and use the
  119. application path for the cookie path. This is a temporary fix for 76172.
  120. * SessionId.cs: don't access the cookie collection twice.
  121. 2005-09-09 Sebastien Pouliot <[email protected]>
  122. * HttpSessionState.cs: Added LinkDemand for Minimal.
  123. * IHttpSessionState.cs: Renamed IsCookieLess to IsCookieless.
  124. * ISessionStateItemCollection.cs: Added ICollection and IEnumerable.
  125. * SessionStateMode.cs: Added Custom (2.0).
  126. * SessionStateModule.cs: Use RandomNumberGenerator.Create to create
  127. the RNG. Assert EnvironmentPermission to read MONO_XSP_STATIC_SESSION.
  128. Added LinkDemand for Minimal.
  129. * StateRuntime.cs: Added LinkDemand for Minimal, new ProcessRequest
  130. override (2.0) and security attributes on methods.
  131. 2005-09-08 Gonzalo Paniagua Javier <[email protected]>
  132. * SessionStateModule.cs: raise the Start event for new sessions.
  133. 2005-09-08 Eyal Alaluf <[email protected]>
  134. * HttpSessionState.jvm.cs - fixed serialization when we want to serialize
  135. an empty session.
  136. 2005-09-06 Gonzalo Paniagua Javier <[email protected]>
  137. * SessionStateModule.cs: Only invoke the End event using the new method
  138. in HttpApplicationFactory and when session state mode is InProc.
  139. 2005-09-01 Eyal Alaluf <[email protected]>
  140. * SessionStateModule.cs: Under TARGET_J2EE we let the J2EE app server handle
  141. session persistence, so we don't support SQL/Remoting session servers
  142. at the ASP.Net level.
  143. 2005-08-30 Gonzalo Paniagua Javier <[email protected]>
  144. * SessionStateModule.cs: added lock around 'config'.
  145. * SessionInProcHandler.cs: when inserting in the the session in the
  146. Cache, use sliding expiration only.
  147. 2005-08-15 Miguel de Icaza <[email protected]>
  148. * SessionStateModule.cs: Make this use the synch api as the module
  149. was synchronous anyways
  150. 2005-06-25 Gonzalo Paniagua Javier <[email protected]>
  151. * SessionInProcHandler.cs: use cache.InsertPrivate.
  152. * SessionDictionary.cs: fix typo that made Clone useless.
  153. 2005-06-08 Ilya Kharmatsky <ilyak-at-mainsoft.com>
  154. * SessionStateMode.cs: Added TARGET_J2EE directive in order
  155. to provide in J2EE configuration additional mode - J2EE
  156. * SessionStateModule.cs: Added TARGET_JVM directives in order
  157. to resolve unsupported in Ghrasshopper "static variables" issue
  158. (When static variable are stored in general place, instead of
  159. storing such variables per AppDomain).
  160. 2005-05-27 Gonzalo Paniagua Javier <[email protected]>
  161. * RemoteStateServer.cs:
  162. * HttpSessionState.cs:
  163. * SessionSQLServerHandler.cs:
  164. * SessionInProcHandler.cs:
  165. * SessionStateServerHandler.cs: remove abandoned sessions in the
  166. ReleseRequest state. Fixes bug #75051.
  167. 2005-04-20 Gonzalo Paniagua Javier <[email protected]>
  168. * SessionSQLServerHandler.cs:
  169. * SessionStateServerHandler.cs: removed warnigs.
  170. 2005-03-02 Gonzalo Paniagua Javier <[email protected]>
  171. * SessionStateModule.cs:
  172. * SessionId.cs: share the same RNG for all the instances of
  173. SessionStateModule.
  174. 2005-02-05 Gonzalo Paniagua Javier <[email protected]>
  175. * SessionStateModule.cs: hack that makes static files work on sites that
  176. use the Session object in global.asax. You need to set
  177. MONO_XSP_STATIC_SESSION to enable it and by dong so you will lose a bit
  178. of performance when serving static files. Fixes bug #71133.
  179. 2004-11-30 Gonzalo Paniagua Javier <[email protected]>
  180. * SessionStateModule.cs: set the path modifier when using cookie-less
  181. sessions.
  182. 2004-10-06 Gonzalo Paniagua Javier <[email protected]>
  183. * SessionStateModule.cs: use SetCurrentExePath instead of SetFilePath.
  184. 2004-09-09 Gonzalo Paniagua Javier <[email protected]>
  185. * HttpSessionState.cs: don't share static session objects declared in
  186. the application file across the application, but on a per-session
  187. basis. Fixes bug #65446.
  188. 2004-08-31 Sanjay Gupta <[email protected]>
  189. * SessionStateItemExpireCallback.cs: Explicit modifier "sealed" not
  190. required in definition.
  191. 2004-08-09 Sanjay Gupta <[email protected]>
  192. * SessionStateItemExpireCallback.cs: Added delegate.
  193. * SessionStateStoreData.cs: Added a new class.
  194. 2004-08-05 Sanjay Gupta <[email protected]>
  195. * IHttpSessionState.cs:
  196. * ISessionIDModule.cs:
  197. * ISessionStateItemCollection.cs: Added new interfaces.
  198. 2004-08-04 Sanjay Gupta <[email protected]>
  199. * SessionStateActionFlags.cs: Added enumeration.
  200. 2004-07-07 Juraj Skripsky <[email protected]>
  201. * SessionStateModule.cs: set path in session cookie to application
  202. path.
  203. 2004-06-18 Gert Driesen <[email protected]>
  204. * IStateRuntime.cs: added missing marshalling attributes
  205. 2004-06-11 Gonzalo Paniagua Javier <[email protected]>
  206. * SessionSQLServerHandler.cs:
  207. * SessionStateServerHandler.cs:
  208. * ISessionHandler.cs: added new parameter to Init.
  209. * SessionInProcHandler.cs: use the HttpRuntime cache to store the
  210. sessions and handle expiration.
  211. * SessionStateModule.cs: added OnSessionRemoved internal method that is
  212. called whenever a session expires or is removed.
  213. 2004-05-05 Gonzalo Paniagua Javier <[email protected]>
  214. * HttpSessionState.cs: added Clone (), which makes and exact copy but
  215. with a cloned SessionDictionary. When EnableSessionState is set to
  216. ReadOnly, we can modify the collection, but changes are not propagated.
  217. * ISessionHandler.cs: changed signature of UpdateContext().
  218. * SessionDictionary.cs: added Clone.
  219. * SessionInProcHandler.cs:
  220. * SessionSQLServerHandler.cs:
  221. * SessionStateServerHandler.cs: don't create a new session if the
  222. handler do not require it. UpdateContext() now returns an
  223. HttpSessionState to the module.
  224. * SessionStateModule.cs: removed IsReadOnly as it is now passed as a
  225. parameter to the session handler. If the session is read-only, clone
  226. it so that it can be changed but changes are not kept.
  227. In short, we don't create session objects when not required and we
  228. honor the ReadOnly sessions.
  229. 2004-02-09 Gonzalo Paniagua Javier <[email protected]>
  230. * SessionInProcHandler.cs:
  231. * SessionSQLServerHandler.cs:
  232. * SessionStateServerHandler.cs: when creating the
  233. HttpSessionStateObjets, use the session objects that we know about
  234. in HttpApplicationFactory.
  235. 2004-01-23 Gonzalo Paniagua Javier <[email protected]>
  236. * HttpSessionState.cs:
  237. * SessionInProcHandler.cs: IsNewSession doesn't have a public setter.
  238. * SessionStateModule.cs: doesn't implement IRequiresSessionState.
  239. * StateServerItem.cs: not public.
  240. 2004-01-05 Alon Gazit <[email protected]>
  241. * SessionDictionary.cs: can't set item's value to null if the item is
  242. new.
  243. 2003-12-25 Jackson Harper <[email protected]>
  244. * SessionStateModule.cs: Handle SessionStateMode.Off properly in
  245. Init. Only set session cookies if a new session is created. This
  246. fixes bug #52501.
  247. 2003-12-18 Gonzalo Paniagua Javier <[email protected]>
  248. * IStateRuntime.cs:
  249. * SessionStateModule.cs: class status based fixes.
  250. 2003-12-05 Jackson Harper <[email protected]>
  251. * SessionStateModule.cs: Add readonly property for readonly
  252. sessions. This fixes bug #51647.
  253. * SessionInProcHandler.cs:
  254. * SessionSQLServerHandler.cs:
  255. * SessionStateServerHandler.cs: Cleanup params for
  256. HttpSessionState ctor. Make sure to always set is new, cookieless,
  257. and readonly properly.
  258. 2003-12-03 Jackson Harper <[email protected]>
  259. * SessionStateModule.cs: If using cookieless sessions add an
  260. onbegin request handler that parsers out session ids and rewrites
  261. the path. Also redirect to a url with an embedded session id if we
  262. are creating a new cookieless session.
  263. * SesionInProcHandler.cs:
  264. * SessionSQLServerHandler.cs:
  265. * SessionStateServerHandler.cs: Use SessionId::Lookup to lookup session
  266. ids, don't set the session id cookie anymore. That is handled by
  267. the SessionStateModule.
  268. * SessionId.cs: Add method for looking up session ids, add some constants.
  269. 2003-11-26 Jackson Harper <[email protected]>
  270. * SessionSQLServerHandler.cs: Fix typo in param name.
  271. 2003-11-25 Jackson Harper <[email protected]>
  272. * RemoteStateServer.cs: Update the session dictionary data and the
  273. static objects data.
  274. * SessionDictionary.cs: Remove type serialization methods, these
  275. have been moved to a utility class. Add convenience methods for
  276. converting to/from byte arrays.
  277. * SessionSQLServerHandler.cs:
  278. * SessionStateServerHandler.cs: Save/Restore static objects. Use new
  279. to/from byte array methods.
  280. * StateServerItem.cs: Hold static objects data.
  281. 2003-11-24 Jackson Harper <[email protected]>
  282. * SessionStateServerHandler.cs: Parse connection string. Need to
  283. look into what MS allows/doesn't allow better.
  284. 2003-11-24 Jackson Harper <[email protected]>
  285. * RemoteStateServer.cs: The state server object that will reside
  286. on the server and store session data and ids.
  287. * StateServerItem.cs: Container for session data.
  288. * SessionStateServerHandler.cs: Handler that communicates with the
  289. StateServer so sessions can be stored out of process.
  290. * SessionStateModule.cs: Allow state server mode.
  291. 2003-11-13 Jackson Harper <[email protected]>
  292. * SessionInProcHandler.cs: Use AppDomain.SetData so data is
  293. available across all threads. Set the path of session id
  294. cookies. Patch by Mohammad DAMT. Fixes bug #50922.
  295. 2003-11-06 Jackson Harper <[email protected]>
  296. * ISessionHandler.cs: Pass the SessionStateModule to handlers when
  297. updating.
  298. * SessionSqlServerHandler.cs:
  299. * SessionInProcHandler.cs: Accept SessionStateModule when
  300. updating. Use new SessionId.Create method for creating session
  301. ids.
  302. * SessionStateModule.cs: Add a random number generator that will
  303. be used for creating session ids. Pass this to handlers when
  304. updating.
  305. * SessionId.cs: New class for creating session ids.
  306. 2003-11-03 Jackson Harper <[email protected]>
  307. * HttpSessionState.cs (CopyTo): Copy values not keys. Patch by Yaron Shkop.
  308. 2003-11-03 Jackson Harper <[email protected]>
  309. * HttpSessionState.cs: Make the SessionDictionary accessable
  310. * ISessionHandler.cs: Add method to update the session state
  311. data in the handler. Pass the session config to handlers when
  312. initializing.
  313. * SessionConfig.cs: Add StateNetworkTimeout
  314. * SessionInProcHandler.cs: Updates because interface has
  315. changed, all functionality is the same.
  316. * SessionStateModule.cs: Get new config items, allow SQLServer
  317. session manager type. Update session handlers when the session
  318. state has been released.
  319. * SessionStateSectionHandler.cs: Add StateNetworkTimeout
  320. * SessionSQLServerHandler.cs: New class allows sessions to be
  321. stored in a database.
  322. 2003-10-28 Jackson Harper <[email protected]>
  323. * HttpSessionState.cs: Do not allow timeout to be set to less then
  324. one.
  325. 2003-10-28 Jackson Harper <[email protected]>
  326. * SessionInProcHandler.cs: Compute timeouts
  327. correctly. DateTime.Milliseconds is the just the milliseconds part
  328. of the time, it is not the entire time as milliseconds.
  329. 2003-10-13 Ben Maurer <[email protected]>
  330. * SessionStateModule.cs: prevent Context.State from being null if
  331. the module is inited in another HttpApplication. Fixes #49569.
  332. 2003-07-30 Andreas Nahr <[email protected]>
  333. * IStateRuntime.cs: New interface class
  334. * StateRuntime.cs: New class - stubbed out
  335. 2003-07-17 Andreas Nahr <[email protected]>
  336. * SessionInProcHandler.cs: Made these internal to fix signature and building CLS-compliant
  337. 2003-07-08 Gonzalo Paniagua Javier <[email protected]>
  338. * SessionDictionary.cs: locking.
  339. * SessionInProcHandler.cs: use the new method instead of the setter.
  340. 2003-07-01 Gonzalo Paniagua Javier <[email protected]>
  341. * ISessionHandler.cs:
  342. * SessionInProcHandler.cs:
  343. * SessionStateModule.cs: UpdateContext returns a bool indicating if we
  344. started a new session. Only call session start event if that is true.
  345. 2003-05-13 Gonzalo Paniagua Javier <[email protected]>
  346. * SessionStateModule.cs: fire application start and session start/end
  347. events.
  348. 2003-03-31 Stefan Görling <[email protected]>
  349. * HttpSessionState.cs:
  350. * ISessionHandler.cs:
  351. * SessionInProcHandler.cs:
  352. * SessionStateModule.cs: initial implementation of InProc session.
  353. 2003-03-13 Gonzalo Paniagua Javier <[email protected]>
  354. * HttpSessionState.cs: implemented CodePage.
  355. * SessionStateModule.cs: initial stuff to make it work.
  356. 2003-03-04 Gonzalo Paniagua Javier <[email protected]>
  357. * HttpSessionState.cs: reworked to use SessionDictionary.
  358. * SessionDictionary.cs: implemented serialization/deserialization.
  359. 2003-03-03 Gonzalo Paniagua Javier <[email protected]>
  360. * SessionConfig.cs:
  361. * SessionStateSectionHandler.cs: new files to read <sessionState>
  362. configuration.
  363. 2002-10-08 Gonzalo Paniagua Javier <[email protected]>
  364. * SessionStateModule.cs: don't throw exception. Just for testing the
  365. configuration stuff until we implement this.
  366. 2002-08-18 Gonzalo Paniagua Javier <[email protected]>
  367. * HttpSessionState.cs: IsAbandoned is internal.
  368. * SessionDictionary.cs: scope fixes.
  369. * SessionStateModule.cs: added events.
  370. 2002-06-30 Gonzalo Paniagua Javier <[email protected]>
  371. * System.Web.SessionState/HttpSessionState.cs:
  372. Fixes based on class status page:
  373. - Add attributes (DefaultEvent, ParseChildren).
  374. - Fix declarations.
  375. - Explicitly implement some interfaces (IPostBackDataHandler
  376. and IPostBackEventHandler).
  377. - Implemented some missing methods.
  378. 2002-06-23 Gonzalo Paniagua Javier <[email protected]>
  379. * HttpSessionState.cs: implemented more methods/properties.
  380. * SessionDictionary.cs: New file.
  381. 2002-06-04 Gonzalo Paniagua Javier <[email protected]>
  382. * System.Web.SessionState/HttpSessionState.cs:
  383. * System.Web.SessionState/SessionStateModule.cs: new files with some
  384. implementation and the rest stubbed.
  385. 2002-06-03 Gonzalo Paniagua Javier <[email protected]>
  386. * IReadOnlySessionState.cs:
  387. * IRequiresSessionState.cs:
  388. * SessionStateMode.cs: new files.