2010-03-02 Jb Evain <jbevain@novell.com>
[mcs.git] / class / System.Web / System.Web.Configuration_2.0 / ChangeLog
blob1ae368ee4c85254586d544755d7ca0471fe84934
1 2010-02-23  Marek Habersack  <mhabersack@novell.com>
3         * SessionStateSection.cs: implemented 4.0 properties -
4         CompressionEnabled and SqlConnectionRetryInterval 
6 2010-02-12  Marek Habersack  <mhabersack@novell.com>
8         * WebConfigurationHost.cs: implemented {Encrypt,Decrypt}Section
10 2010-01-20  Marek Habersack  <mhabersack@novell.com>
12         * OutputCacheSection.cs: implemented the Providers and
13         DefaultProviderName 4.0 properties.
15 2010-01-09  Marek Habersack  <mhabersack@novell.com>
17         * WebConfigurationManager.cs: GetSection properly handles looking
18         up and caching of <location> instances. Part of fix for bug
19         #568441
21         * WebConfigurationHost.cs: GetConfigPathFromLocationSubPath
22         calculatesthe path relative to the current config file path. Part
23         of fix for bug #568441
25 2009-12-02  Marek Habersack  <mhabersack@novell.com>
27         * CompilationSection.cs: added two properties -
28         OptimizeCompilations (3.5+) and TargetFramework (4.0+)
30 2009-11-19  Marek Habersack  <mhabersack@novell.com>
32         * WebConfigurationHost.cs: IsDefinitionAllowed now normalizes the
33         passed configuration path, so that MachineToApplication sections
35         * WebConfigurationManager.cs: use an rw lock to protect access to
36         sectionCache. This is now necessary as the save handler clears the
37         cache.
39 2009-11-10  Marek Habersack  <mhabersack@novell.com>
41         * WebConfigurationManager.cs: path passed to OpenWebConfiguration
42         from GetSection does not come from FindWebConfig.
44 2009-11-09  Marek Habersack  <mhabersack@novell.com>
46         * WebConfigurationManager.cs: there's no need to cache sections by
47         _file_ path - using section name and web.config path is more than
48         enough and it reduces the number of cache entries
49         considerably. Fixes bug #550730
51 2009-10-07  Marek Habersack  <mhabersack@novell.com>
53         * WebConfigurationManager.cs: GetSection doesn't perform string +
54         char + string concatenation to generate section cache key (by
55         Gonzalo Paniagua Javier) which gives an enormous performance boost
56         (processing time for mojoportal's default.aspx went down from
57         2.65s to 107ms on average). The key generation is performed
58         without any kind of string operation right now (except for
59         GetHashCode on 3 strings).
60         GetSectionCacheKey is called only once and sectionCache became a
61         dictionary.
63 2009-08-20  Marek Habersack  <mhabersack@novell.com>
65         * WebConfigurationManager.cs: GetSection does not use
66         FindWebConfig to get the virtual path to open configuration for -
67         doing so would make the configuration system ignore <location>
68         sections. Fixes bug #482181
70 2009-07-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
72         * WebConfigurationManager.cs: avoid possible infinite loop when the
73         path starts with ~ and 1 file check.
75 2009-07-15  Marek Habersack  <mhabersack@novell.com>
77         * WebConfigurationManager.cs: another approach to suppressing
78         application reloads after the app writes to its root web.config
79         file. Leaving the previous code in place to get more
80         protection. It's a kludge, but it's the best option to avoid
81         all the races caused by System.Configuration+FileSystemWatcher
82         without rewriting large parts of System.Configuration (and
83         System.Web.Configuration). Fixes bug #522017
85 2009-07-14  Marek Habersack  <mhabersack@novell.com>
87         * WebConfigurationManager.cs: added support for suppressing
88         application reload when the main config file is written to from
89         application.
91         * WebConfigurationHost.cs: added minimal implementation of
92         WriteCompleted, which checks if there's need to suppress
93         application reload.
95 2009-07-13  Marek Habersack  <mhabersack@novell.com>
97         * ProvidersHelper.cs: InstantiateProvider doesn't have to
98         explicitly look for types in App_Code assemblies - this is done in
99         HttpApplication.LoadType.
101 2009-07-09 Gonzalo Paniagua Javier <gonzalo@novell.com>
103         * WebConfigurationHost.cs: null means MachineToApplication.
104         * WebConfigurationManager.cs: when caching configuration and sections,
105         use the configuration file directory instead of the incoming request
106         path.
108 2009-06-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
110         * HttpHandlerAction.cs: fix path matching when the pattern has more
111         than one slash.
113 2009-06-05  Marek Habersack  <mhabersack@novell.com>
115         * WebConfigurationManager.cs: OpenWebConfiguration caches
116         configurations with a key generated from all the parameters passed
117         to it, not just from path.
118         Added internal GetSection method which takes HttpContext as its
119         third parameter - used in calling OpenWebConfiguration.
120         FindWebConfig is no longer used in GetSection - it breaks handling
121         of <location> elements in config files. Fixes bug #510302
123 2009-06-03  Marek Habersack  <mhabersack@novell.com>
125         * MonoSettingsSection.cs: added new property,
126         verificationCompatibility, which serves the same purpose as the
127         registry key described in http://support.microsoft.com/kb/932552
128         (when set to 1 it turns off virtual path validity
129         verification). Fixes bug #509163
131 2009-05-14  Marek Habersack  <mhabersack@novell.com>
133         * HttpHandlersSection.cs: if we're matching a default handler,
134         disallow caching.
136 2009-04-03  Marek Habersack  <mhabersack@novell.com>
138         * WebConfigurationManager.cs: added code in the static constructor
139         to enable retrieving application settings via
140         ApplicationSettingsBase from within asp.net applications. Fixes
141         bug #491531
143         * ApplicationSettingsConfigurationFileMap.cs: added.
145 2009-03-12  Dean Brettle  <dean@brettle.com>
147         * nBrowser/Build.cs: made Browser() method thread-safe and moved the
148         actual tree creation to a private InitializeTree() method for clarity.
150 2009-03-01  Marek Habersack  <mhabersack@novell.com>
152         * WebConfigurationManager.cs: optimized GetWebApplicationSection a
153         bit
155 2009-02-28  Marek Habersack  <mhabersack@novell.com>
157         * WebConfigurationManager.cs: make sure no nrex happens in
158         GetSectionCacheKey ()
160 2009-02-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
162         * WebConfigurationManager.cs: generate a hash from the string hsah
163         codes instead of concatenating them.
165 2009-01-27  Marek Habersack  <mhabersack@novell.com>
167         * HttpHandlerAction.cs: removed the matches cache, it doesn't
168         improve matters here in 99% of the cases.
169         Regexps are no longer used to match handler paths, SearchPattern
170         is used instead.
172 2009-01-26  Marek Habersack  <mhabersack@novell.com>
174         * WebConfigurationHost.cs: when an attempt to map a fake virtual
175         path is made, MapPath returns the aplication physical root
176         directory. Fixes bug #463950
178 2008-01-09  Dean Brettle  <dean@brettle.com>
180         * nBrowser/Node.cs: Fixed compatibility bug where <identification> sections were required
181         in browser defs.  
183 2009-01-09  Marek Habersack  <mhabersack@novell.com>
185         * WebConfigurationManager.cs: do not normalize the path in
186         FindWebConfig when getting the virtual directory.
188 2009-01-08  Marek Habersack  <mhabersack@novell.com>
190         * WebConfigurationManager.cs: improve performance of
191         FindWebConfig.
193 2009-01-07  Marek Habersack  <mhabersack@novell.com>
195         * HttpModulesSection.cs: allow for modules with non-public
196         constructors. Fises bug #463971
198         * HttpHandlerAction.cs: allow for handlers with non-public
199         constructors. Fixes bug #463971
201 2008-12-24  Marek Habersack  <mhabersack@novell.com>
203         * WebConfigurationManager.cs: A better version of the previous
204         GetSection fix. Right now the method searches for directories
205         containing web.config and uses them, if found, to open the web
206         configuration. If no web.config is found, web configuration is
207         opened for the root application directory.
209         * WebConfigurationHost.cs: made GetWebConfigFileName internal
210         static, so that code can be reused from WebConfigurationManager.
212 2008-12-23  Marek Habersack  <mhabersack@novell.com>
214         * WebConfigurationManager.cs: GetSection should call
215         OpenWebConfiguration using the actual directory path, not a file
216         path. If it fails to do so, System.Configuration may treat the
217         top-level Web.config file as a child one which, in turn, in
218         certain circumstances will lead to duplicate keys inserted in
219         collections.
221 2008-12-16  Marek Habersack  <mhabersack@novell.com>
223         * WebConfigurationHost.cs: IsDefinitionAllowed should treat
224         configPath == "~" as the root application path.
226 2008-12-12  Owen Brady <Ocean@owenbrady.net>
228         * nBrowser/File.cs, nBrowser/Identification.cs, nBrowser/Node.cs, nBrowser/NodeTypes.cs,
229         nBrowser/Result.cs, nBrowser/Build.cs, nBrowser/Exception.cs, CapabilitiesBuild.cs, 
230         CapabilitiesResult.cs: Updated Copyright information to include updated contact information.
231         
232         * nBrowser/Build.cs: Removed LoadDefaultEmbeddedResource function, the embeded resource
233         it is referring too was never included in Mono. And was designed for a free standing 
234         browser identification libary.
236         * nBrowser/Exception.cs: Removed Compile Attributes and related comments which were left
237         in from the original free standing browser libary.
238         
239         * CapabilitiesBuild.cs: Removed Header Checksum related coding since it is not required
240         for the Mono implementation.
242         * CapabilitiesResult.cs: Updated Copyright information to include updated contact information. 
243         Removed functions which were designed to make use of features of a embeded browser file which
244         is not present in Mono.
245         
246         * CapabilitiesChecksum.cs, RandomRoboBotKeywords.txt: Deleted
247 2008-10-21  Marek Habersack  <mhabersack@novell.com>
249         * CapabilitiesChecksum.cs: implement Hex and MapToHex more efficiently.
251 2008-10-09  Marek Habersack  <mhabersack@novell.com>
253         * MonoSettingsSection.cs: added - a section for mono-specific
254         settings.
256 2008-10-01  Marek Habersack  <mhabersack@novell.com>
258         * CapabilitiesResult.cs: added support for the "browsers"
259         capability - a collection of matching browser ids.
261         * nBrowser/Node.cs: store matching browser ids in the capabilities
262         collection (to support IsBrowser correctly)
264 2008-07-25  Dean Brettle <dean@brettle.com>
266         * nBrowser/Node.cs nBrowser/Build.cs nBrowser/Identification.cs: Fixed race
267         condition in Node.Process() by removing mutating functions from Identification
268         and     changing Node.Process() and Node.BrowserIdentification() to maintain
269         state in a List<Match> instead of a List<Identification>.
270         
271         * nBrowser/Node.cs: Fixed race condition associated with lookup of adapter
272         types.
273         
274         * nBrowser/Node.cs: Removed duplicate call to Node.BrowserIdentification() from
275         Node.Process().
277         * nBrowser/Node.cs: Removed duplicate call to Result.AddAdaper() from Node.Process().
278         
279         * nBrowser/Node.cs: Fixed bug where capabilities containing literal $ or % were
280         dropped.
282         * nBrowser/Node.cs: Fixed bug where capabilities with multiple $ substitutions only
283         had one applied.
285 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
287         * CapabilitiesResult.cs: Make the RandomRoboBotKeywords array static and compute it
288         only once.
290 2008-06-30  Marek Habersack  <mhabersack@novell.com>
292         * CompilationSection.cs: hush the warnings
294 2008-06-26  Zoltan Varga  <vargaz@gmail.com>
296         * nBrowser/Node.cs nBrowser/Result.cs: Avoid looking up adapter types names for
297         every request in every assembly.
299 2008-05-22  Marek Habersack  <mhabersack@novell.com>
301         * WebConfigurationHost.cs: changed CreateDeprecatedConfigContext
302         to return a new HttpContext object. This is part of a fix for bug 
303         #325128. Patch contributed by James Fitzsimons <james.fitzsimons@gmail.com>,
304         thanks!
306 2008-05-07  Marek Habersack  <mhabersack@novell.com>
308         * RoleManagerSection.cs: use type converter when creating the
309         cookieTimeout property in the static constructor. Fixes bug
310         #387526. Patch fromIvan Hamilton <ivan@chimerical.com.au>, thanks! 
312 2008-03-23  Dean Brettle <dean@brettle.com>
314         * CapabilitiesBuild.cs (Process), ICapabilitiesProcess.cs (Process),
315         nBrowser/Build.cs (Process): Added initialCapabilities argument to 
316         facilitate using browscap.ini capabilities.
317         
318         * CapabilitiesResult.cs (ctor), nBrowserResult.cs (ctor): Change 
319         items arg to IDictionary to     facilitate using browscap.ini capabilities.
320         
321         * nBrowser/Node.cs (Reset): Removed code which checked prohibited 
322         non-alphanumerics in id attributes because .NET is not that strict.
323         
324         * nBrowser/Node.cs (MergeFrom): Fixed NullReferenceExceptions that
325         occurred when the source or destination node did not have any
326         capabilities or adapters.
327         
328         * nBrowser/Result.cs (AddAdapter): Fixed to allow types in other
329         assemblies.
331 2008-03-09  Dean Brettle <dean@brettle.com> 
333         * nBrowser/Result.cs, nBrowser/NodeTypes.cs, nBrowser/Identification.cs,
334         nBrowser/File.cs, nBrowser/Build.cs, nBrowser/Node.cs, 
335         nBrowser/Exception.cs: added.  The code under nBrowser handles *.browser
336         files.  It is based on Owen "Ocean" Brady's code, with the following 
337         changes and improvements.  Replaced Result.Adapter 
338         property with AdapterTypeMap property which maps control Type to adapter
339         Type.  Added Result.MarkupTextWriter property.  Added overrides for
340         Result.GetAdapters and Result.GetTagWriter to return MarkupTextWriter
341         and AdapterTypeMap, resp.  Changed tree building algorithm to not
342         depend on nodes with id="Default" and to inject defaultBrowser nodes
343         as parents of regular nodes with the same ids.  Changed Node.cs to use
344         Item instead of Add when adding a capability or sample header, so that
345         values get replaced instead of appended.  Added support for reference 
346         nodes (ie. nodes with refID="someID").
347                 
348         * CapabilitiesResult.cs: load RandomRoboBotKeywords.txt resource
349         using the correct name.
350         
351         * RandomRoboBotKeywords.txt: added 
353         * HttpCapabilitiesBase.cs (CreateHtmlWriter, Adapters): Added
354         support for *.browsers.  Adapters property calls internal virtual
355         GetAdapters() method which is overrided in nBrowser.Result 
356         returned by nBrowser code.  CreateHtmlWriter uses type specified
357         by TagWriter property.
358         
359 2008-03-03  Vladimir Krasnov  <vladimirk@mainsoft.com>
361         * ProvidersHelper.cs: fixed thread safety issue in InstantiateProvider
363 2008-03-01  Marek Habersack  <mhabersack@novell.com>
365         * WebConfigurationManager.cs: SettingsMappingManager has been
366         moved to Mono.Web.dll
368 2008-02-28  Marek Habersack  <mhabersack@novell.com>
370         * HttpHandlerAction.cs: ignore case when matching handler
371         paths. Fixes bug #364995
373 2008-02-26  Marek Habersack  <mhabersack@novell.com>
375         * BuildProviderCollection.cs: be case-insensitive when looking for
376         the extension match.
378 2008-02-25  Marek Habersack  <mhabersack@novell.com>
380         * WebConfigurationManager.cs: hashtable can contain a key with a
381         null value, avoid adding duplicate keys in such cases.
383 2008-02-18  Vladimir Krasnov  <vladimirk@mainsoft.com>
385         * WebConfigurationManager.cs: performance improvement, cached
386         GetSection method
388 2008-02-07  Vladimir Krasnov  <vladimirk@mainsoft.com>
390         * GlobalizationSection.cs: fixed GetSanitizedCulture, performance
391         optimization
393 2008-02-05  Marek Habersack  <mhabersack@novell.com>
395         * CompilerCollection.cs: Get (string language) should not use
396         BaseGet as our collection is keyed on a list of language names
397         (e.g. "cs;csharp") and passing a single language won't match in
398         BaseGet correctly. Use the overriden indexer instead.
399         Initialize the base class with the case-insensitive
400         comparer. Fixes bug #357824.
402 2008-01-27  Daniel Nauck <dna@mono-project.de>
404         * HttpHandlerAction.cs: fixed the internal method PathMatches ()
405         removed wrong caching of FileMatchingInfo classes with request specific
406         informations. Now we check against the current request path and cache
407         the result in a dictionary.
408         Also check correctly against all possible paths from the HttpHandler.
409                 
411 2007-12-27  Marek Habersack  <mhabersack@novell.com>
413         * ProfileGroupSettingsCollection.cs: added an internal method to
414         add/overwrite new group settings. Used from
415         RootProfilePropertySettingsCollection.
417         * ProfileGroupSettings.cs: added the missing "name" property to
418         the properties collection.
419         Marked the propertySettingsProp property as the default
420         collection.
421         Added internal deserialization method, used from
422         RootProfilePropertySettingsCollection to support the 'group'
423         element.
425         * ProfileSection.cs: defaultProviderProp typo - the name of the
426         provider should be "AspNetSqlProfileProvider"
428         * RootProfilePropertySettingsCollection.cs: added
429         OnDeseerializeUnrecognizedElement to support the profile 'group'
430         element.
431         Added a missing Unmerge method.
433 2007-12-11  Vladimir Krasnov  <vladimirk@mainsoft.com>
435         * SiteMapSection.cs: fixed ProvidersInternal property to be thread safe
437 2007-12-08  Marek Habersack  <mhabersack@novell.com>
439         * WebConfigurationManager.cs: GetSection now runs each section
440         through a mapper (if any is defined for the section) before
441         returning it to the caller.
443 2007-11-23  Marek Habersack  <mhabersack@novell.com>
445         * TagPrefixCollection.cs: changed the collection type to
446         BasicMap.
448         * ProfileSection.cs: added missing Properties property, added a
449         static constructor to create property descriptors. Use property
450         descriptors in property accessors.
452         * ProfileGroupSettingsCollection.cs: added missing attribute to
453         the class, removed CollectionType method, added missing IsModified
454         and ResetModified methods, added missing Properties property.
456         * ProfileGroupSettings.cs: added missing Properties property,
457         adjusted the set of custom attributes of the PropertySettings
458         property.
460         * ProcessModelSection.cs: change the default value of the CpuMask
461         property.
463         * OutputCacheSection.cs: added the EnableKernelCacheForVaryByStar
464         property.
466         * OutputCacheProfile.cs: added the VaryByContentEncoding property.
468         * FormsAuthenticationConfiguration.cs: corrected defaults for the
469         Timeout property.
471         * ExpressionBuilder.cs: corrected defaults for the
472         ExpressionPrefix and Type properties.
474         * CustomErrorsSection.cs: added two missing overrides -
475         DeserializeSection and Reset.
477         * ClientTargetSection.cs: added the missing Properties property.
478         Added static constructor to create the property collection.
480         * CustomErrorCollection.cs: removed the ThrowOnDuplicate
481         property.
483         * CacheSection.cs: corrected defaults for the
484         PercentagePhysicalMemoryUsedLimit property.
486         * ClientTargetCollection.cs: added missing Properties property.
488         * IConfigMapPathFactory.cs: added
490         * IConfigMapPath.cs: added
492         * RoleManagerSection.cs: added a static constructor, a collection
493         of properties, the missing Properties property.
495 2007-11-22  Marek Habersack  <mhabersack@novell.com>
497         * RoleManagerSection.cs: CookieTimeout property custom attributes
498         changed to match MS.NET's ones.
500         * AuthorizationRuleCollection.cs: removed the ThrowOnDuplicate
501         property - it's not found in the MS.NET version of the class.
503 2007-11-06  Marek Habersack  <mhabersack@novell.com>
505         * MachineKeySectionUtils.cs: make sure keys are autogenerated when
506         necessary.
508 2007-11-02  Marek Habersack  <mhabersack@novell.com>
510         * HttpHandlerActionCollection.cs: clear http handler cache in
511         HttpApplication if the collection is modified.
513 2007-11-01  Marek Habersack  <mhabersack@novell.com>
515         * MachineKeySection.cs: moved all the internal static methods and
516         properties to MachineKeySectionUtils.cs
518         * MachineKeySectionUtils.cs: added. This file is included in the
519         System.Web.Extensions compilation.
520         The old properties from MachineKeySection.cs became methods.
522 2007-10-24  Marek Habersack  <mhabersack@novell.com>
524         * HttpHandlerAction.cs: exact path matching must be done on the
525         original string in PathMatches, not on the sliced one. Fixes bug
526         #335669.
528 2007-10-17  Marek Habersack  <mhabersack@novell.com>
530         * WebConfigurationHost.cs: if running outside hosted environment,
531         read only the assemblyname.config configuration file instead of
532         web.config. Fixes bug #332425
534 2007-10-15  Marek Habersack  <mhabersack@novell.com>
536         * ProvidersHelper.cs: use HttpApplication.LoadType instead of
537         Type.GetType.
539         * HttpModulesSection.cs: use HttpApplication.LoadType when loading
540         modules, to include both the bin/ directory and the top-level
541         assemblies in search. Fixes bug #333686.
543 2007-08-30  Marek Habersack  <mhabersack@novell.com>
545         * MachineKeySection.cs: retrieve the keys from the registry before
546         falling back to the old method. Fixes bug #76606
548 2007-08-23  Marek Habersack  <mhabersack@novell.com>
550         * ProvidersHelper.cs: HttpApplication.LoadTypeFromPrivateBin
551         renamed to LoadTypeFromBin.
553 2007-08-21  Marek Habersack  <mhabersack@novell.com>
555         * ProvidersHelper.cs: use HttpApplication.LoadTypeFromPrivateBin
556         to get the provider settings type.
558 2007-08-10  Gert Driesen  <drieseng@users.sourceforge.net>
560         * PagesEnableSessionState.cs: Marked internal on 1.0 profile.
562 2007-07-16  Vladimir Krasnov  <vladimirk@mainsoft.com>
564         * ProfileGroupSettingsCollection.cs: added ResetInternal internal
565         method
566         * RootProfilePropertySettingsCollection.cs: added Reset method
567         override to reset GroupSettings collection
569 2007-06-24  Vladimir Krasnov  <vladimirk@mainsoft.com>
571         * HttpHandlerAction.cs: fixed SplitPaths property to be thread safe
573 2007-06-12  Vladimir Krasnov  <vladimirk@mainsoft.com>
575         * CompilationSection.cs: TARGET_JVM on not supported features
576         * HttpModulesSection.cs: ctor should be static
578 2007-06-03  Adar Wesley <adarw@mainsoft.com>
580         * ProfilePropertySettingsCollection.cs: added missing method 
581         OnDeserializeUnrecognizedElement.
583 2007-05-30  Marek Habersack  <mhabersack@novell.com>
585         * WebConfigurationManager.cs: if errors happen when opening the
586         configuration file, mark the manager as unsafe to prevent further
587         usage and avoid error loops.
589 2007-05-17  Igor Zelmanovich <igorz@mainsoft.com>
591         * WebConfigurationHost.cs: for TARGET_J2EE only:
592         prevent NullRefference Exception.
594 2007-05-15  Igor Zelmanovich <igorz@mainsoft.com>
596         * WebConfigurationManager.cs: 
597         make configurations hashtable case-insensitive.
598         * WebConfigurationHost.cs: for TARGET_J2EE only:
599         GetStreamName returns file path in right case, that make it works 
600         on case-sensitive file system.
602 2007-05-15  Marek Habersack  <mhabersack@novell.com>
604         * BuildProviderCollection.cs: refactoring - use
605         HttpApplication.LoadType to actually look up the type.
607         * HttpHandlerAction.cs: as above
609         * WebConfigurationHost.cs: refactoring - moved the LoadType to
610         HttpApplication to share the code between 1.1 and 2.0 profiles.
612 2007-05-14  Marek Habersack  <mhabersack@novell.com>
614         * UrlMappingCollection.cs: implemented the Item (string) indexer.
616         * UrlMapping.cs: implemented the URL validation callback body
617         (doesn't work at the moment).
619 2007-05-14  Igor Zelmanovich <igorz@mainsoft.com>
621         * WebConfigurationManager.cs: 
622         make configurations synchronized.
623         added new internal method RemoveConfigurationFromCache.
625 2007-05-07  Marek Habersack  <mhabersack@novell.com>
627         * PagesSection.cs: buffering is on by default.
629 2007-04-24  Marek Habersack  <mhabersack@novell.com>
631         * WebConfigurationHost.cs: wrap MapPath calls in try/catch,
632         because bad URLs can cause it to throw exceptions. If such
633         exception is caught, throw a HttpException for Bad Request (400).
634         Look for types in the top-level assemblies (App_Code and
635         friends).
637         * WebConfigurationManager.cs: added two internal methods for safe
638         retrieval of config sections.
640 2007-04-19  Marek Habersack  <mhabersack@novell.com>
642         * HttpHandlerAction.cs: look up types in all the toplevel
643         assemblies. Fixes bug #80897.
645 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
647         * ProcessModelSection.cs : cpuMask default value should be int,
648           not uint.
650 2007-04-06  Marek Habersack  <mhabersack@novell.com>
652         * CustomErrorsSection.cs: make the customErrors section work.
654         * PagesSection.cs: provide appropriate default value for the
655         asyncTimeout setting.
657 2007-03-24  Marek Habersack  <mhabersack@novell.com>
659         * WebConfigurationHost.cs: allow MachineToApplication definition
660         for config paths that equal the domain virtual app directory.
662 2007-03-22  Adar Wesley <adarw@mainsoft.com>
664         * HttpCapabilitiesBase.cs: implemented all capabilities.  Capabilities
665         still throw if there is no value in browscaps.ini and the property is called.
667 2007-03-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
669         * WebConfigurationManager.cs: fixed OpenWebConfiguration, should not
670         lock when checking if configuration is already open
672 2007-03-15  Vladimir Krasnov  <vladimirk@mainsoft.com>
674         * WebConfigurationManager.cs: fixed OpenWebConfiguration, removed 
675         GetBasePath call and locations search, since this not affects
676         configuration initialization, but improves performance
678 2007-03-12  Marek Habersack  <mhabersack@novell.com>
680         * ProvidersHelper.cs: support loading custom providers from
681         App_Code assemblies. Fixes bug #81071.
682         Also set eol-style to native.
684 2007-03-08  Gert Driesen  <drieseng@users.souceforge.net>
686         * PagesSection.cs: Revert part of Adar's patch that regresses
687         bug #80913.
689 2007-03-06  Adar Wesley <adarw@mainsoft.com>
691         * PagesSection.cs: improve Enum parsing and strongly typed default values.
693 2007-02-20  Marek Habersack  <grendello@gmail.com>
695         * Patch from Gert Driesen  <drieseng@users.sourceforge.net>
696         * PagesSection.cs: Process value of EnableSessionState attribute
697         case-sensitive, and perform check in getter. Fix for bug #80913.
698         * PageParser.cs: Added note on difference in behaviour between page
699         level attribute and configuration attribute for enableSessionState.
700         * PagesConfiguration.cs: Fixed compiler warning.
702 2007-02-22  Marek Habersack  <grendello@gmail.com>
704         * CompilerCollection.cs: Optimize language lookup a bit.
706 2007-02-05  Konstantin Triger <kostat@mainsoft.com>
708         * TagPrefixCollection.cs: Fix element key creation.
710 2007-02-04  Konstantin Triger <kostat@mainsoft.com>
712         * NamespaceInfo.cs, HttpModuleAction.cs, RoleManagerSection.cs:
713                 fix the default value.
715 2007-02-02  Marek Habersack  <grendello@gmail.com>
717         * TagPrefixCollection.cs: Add the CollectionType parameter.
718         Get rid of unnecessary interface references in the class declaration.
719         GetElementKey should return Source which should be unique, unlike TagPrefix.
721 2007-01-04  Konstantin Triger <kostat@mainsoft.com>
723         * ProfileSection.cs: Ensure enabled = true by default; cleanup.
725 2006-12-27  Vladimir Krasnov  <vladimirk@mainsoft.com>
727         * CustomErrorCollection.cs: fixed ThrowOnDuplicate to false as in .net
729 2006-12-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
731         * GlobalizationSection.cs: make encodings actually work for the 2.0
732         profile.
734 2006-12-21  Marek Habersack  <grendello@gmail.com>
736         * TagMapInfo.cs: Add an internal default constructor for use from
737         TagMapCollection.
739         * TagMapCollection.cs: Don't call the string,string constructor of
740         TagMapInfo - the class disallows empty strings as values of its
741         properties.
743 2006-12-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
745         * RoleManagerSection.cs: refactored using attributes
747 2006-12-20  Marek Habersack  <grendello@gmail.com>
749         * ProfilePropertyNameValidator.cs: added a few checks.
751 2006-12-18  Vladimir Krasnov  <vladimirk@mainsoft.com>
753         * WebConfigurationManager.cs: fixed GetSection to execute
754         GetRuntimeObject, refactored GetSection and GetWebApplicationSection
756 2006-12-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
758         * HttpHandlerAction.cs: fixed 'verb' config property
760 2006-12-07  Igor Zelmanovich  <igorz@mainsoft.com>
762         * ProvidersHelper.cs: fixed: load assembles from /bin
764 2006-11-22  Miguel de Icaza  <miguel@novell.com>
766         * SessionStateSection.cs: Do not call Enum.Parse with a null
767         argument, prevents an exception from being thrown.
769 2006-11-20  Marek Habersack  <grendello@gmail.com>
771         * GlobalizationSection.cs: Added support for "auto" cultures and
772         the "auto:DEFAULT_CULTURE" cultures.
774 2006-11-13  Konstantin Triger  <kostat@mainsoft.com>
776         * WebConfigurationHost.cs: use Type.GetType for loading full qualified types.
778 2006-11-05  Vladimir Krasnov  <vladimirk@mainsoft.com>
780         * ProfileGroupSettings.cs, ProfileGroupSettingsCollection.cs
781         ProfilePropertySettingsCollection.cs, ProfileSection.cs
782         RootProfilePropertySettingsCollection.cs: refactoring and fix of
783         <group> element
785 2006-10-18  Marek Habersack  <grendello@gmail.com>
787         * WebConfigurationManager.cs: implement support for extra
788         assemblies to be referenced when compiling a page.
790 2006-09-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
792         * WebConfigurationManager.cs: add null checks. Patch by Marek Habersack
793         that fixes bug #79283.
795 2006-09-06  Konstantin Triger  <kostat@mainsoft.com>
797         * WebConfigurationHost.cs: do not recourse as this will be done by
798                 Configuration object.
800 2006-08-08  Vladimir Krasnov  <vladimirk@mainsoft.com>
802         * WebConfigurationManager.cs: added configSystem property under 
803         TARGET_JVM part
804         * WebConfigurationHost.cs: fixed GetStreamName and OpenStreamForRead
805         for TARGET_JVM
806         * CompilationSection.cs: BuildProviders property removed from
807         TARGET_JVM
808         * SystemWebSectionGroup.cs: Compilation property removed from
809         TARGET_JVM
811 2006-06-26  Atsushi Enomoto  <atsushi@ximian.com>
813         * NullableStringValidator.cs : new internal class that is almost
814           identical to StringValidator but allows null value.
815         * PropertyHelper.cs : use new NullableStringValidator.
816         * NamespaceCollection.cs : in NamespaceInfo "" is not allowed.
818 2006-06-08  Chris Toshok  <toshok@ximian.com>
820         * WebConfigurationHost.cs (InitForConfiguration): i know this is
821         going to bite me in the ass, but guard against configPath being ==
822         to "/", since this will result in an infinite loop.
823         (MapPath): fix a NRE.
825 2006-05-18  Atsushi Enomoto  <atsushi@ximian.com>
827         * WebConfigurationManager.cs: recent sys.config.dll changes on
828           ConfigurationManager.GetSection() which should call
829           GetRuntimeObject() should also apply here. Fixed monodoc web.
831 2006-05-10  Andrew Skiba <andrews@mainsoft.com>
833         * HttpHandlerAction.cs: keep the internal exception
835 2006-05-08  Chris Toshok  <toshok@ximian.com>
837         * WebConfigurationManager.cs (GetBasePath): fix bug where
838         path.Length was 0 when we got to the last while loop (and indexed
839         -1 into an array.)  Thanks Marek for the fix.
841 2006-05-04  Chris Toshok  <toshok@ximian.com>
843         [ Fixes bug #78256 ]
844         
845         * WebConfigurationHost.cs (GetConfigType): add a MonoTODO about
846         how we should use the build provider machinery to get types.
847         (MapPath): add rudimentary mapping in the case where we don't have
848         a request, basically handle the case where the url begins with (or
849         is) HttpRuntime.AppDomainAppVirtualPath.
851         * WebConfigurationManager.cs (GetSection): if we don't have a
852         valid request, open the web configuration corresponding to
853         HttpRuntime.AppDomainAppVirtualPath.
854         (GetBasePath): comment this a little, and make it work in the case
855         where we don't have an HttpRequest.
857 2006-04-27  Chris Toshok  <toshok@ximian.com>
859         * AuthorizationRuleCollection.cs (ThrowOnDuplicate): for the time
860         being introduce a overridden property MS doesn't make use of.
861         This needs readdressing, but it should get people making use of
862         <authorization> rules working again.
864 2006-04-25  Chris Toshok  <toshok@ximian.com>
866         * AuthorizationRule.cs (Reset): finally figure out what this
867         method is supposed to do.  Assign our Action property based on
868         parentElement's.
870 2006-04-25  Chris Toshok  <toshok@ximian.com>
872         * WebConfigurationHost.cs (InitForConfiguration): actually, use
873         HttpRuntime.AppDomainAppVirtualPath on gonzalo's recommendation.
874         It's never null, and its use cleans things up a bit.
876 2006-04-25  Chris Toshok  <toshok@ximian.com>
878         * WebConfigurationHost.cs (InitForConfiguration): stop going up
879         the virtual hierarchy once we reach the application's base virtual
880         path.
882 2006-04-24  Chris Toshok  <toshok@ximian.com>
884         * AuthorizationSection.cs (IsValidUser): fix a problem that
885         surfaced when converting from the 1.1 to 2.0 config classes.  Only
886         check for verb match if there are actually verbs to match against.
888 2006-04-11  Chris Toshok  <toshok@ximian.com>
890         * ExpressionBuilderCollection.cs (CreateNewElement): call argless
891         ctor.
893         * ExpressionBuilder.cs: add internal argumentless ctor for use by
894         the collection type.
896 2006-03-24  Chris Toshok  <toshok@ximian.com>
898         * WebConfigurationManager.cs (GetConfig): add a fallback case for
899         configuration sections that don't subclass from
900         ConfigurationSection.
902 2006-03-24  Chris Toshok  <toshok@ximian.com>
904         * WebConfigurationHost.cs: fix bug where OpenWebConfiguration
905         ("/") would result in 2 configurations for that toplevel path to
906         be opened.
908 2006-03-08  Chris Toshok  <toshok@ximian.com>
910         * ProvidersHelper.cs: implement this static class properly.
912         * SiteMapSection.cs (ProvidersInternal): add internal property to
913         get the actual SiteMapProviderCollection from here.
915 2006-02-28  Chris Toshok  <toshok@ximian.com>
917         * BuildProviderAppliesTo.cs, PagesToCountAction.cs: nuke.
919 2006-02-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
921         * Compiler.cs:
922         * CompilerCollection.cs: removed compatibility code.
924         * BuildProviderCollection.cs: add GetProviderForExtension().
926 2006-02-02  Chris Toshok  <toshok@ximian.com>
928         * WebConfigurationManager.cs (GetSection(string,string)):
929         implement.
931 2006-02-01  Atsushi Enomoto  <atsushi@ximian.com>
933         * TrustLevelCollection.cs, CodeSubDirectoriesCollection.cs,
934           CustomErrorCollection.cs, CompilerCollection.cs,
935           HttpHandlerActionCollection.cs,
936           FormsAuthenticationUserCollection.cs,
937           AuthorizationRuleCollection.cs, TagPrefixCollection.cs :
938           CollectionType is public.
940 2006-02-01  Chris Toshok  <toshok@ximian.com>
942         * WebConfigurationManager.cs: In the normal case, get the current
943         request's web.config, not the application's.  If there is no
944         current request, get the application's.
945         (GetWebApplicationConfiguration): use Request.ApplicationPath, not
946         Request.PhysicalApplicationPath.  OpenWebConfiguration takes
947         virtual paths.
949         * HttpConfigurationSystem.cs: GetWebApplicationSection =>
950         GetSection.
952 2006-02-01  Chris Toshok  <toshok@ximian.com>
954         * CompilerCollection.cs: CONFIGURATION_2_0 => NET_2_0
956         * Compiler.cs: same.
958 2006-02-01  Chris Toshok  <toshok@ximian.com>
960         * HttpConfigurationSystem.cs: SupportsUserConfig == true.  let's
961         use this to determine if ConfigurationManager.AppSettings should
962         be read-only or not.
964 2006-01-31  Chris Toshok  <toshok@ximian.com>
966         * WebConfigurationManager.cs: err, why did i ifdef stuff NET_2_0
967         inside of an ifdef NET_2_0?
969 2006-01-30  Chris Toshok  <toshok@ximian.com>
971         * WebConfigurationManager.cs: lots of little changes.  hopefully
972         this doesn't break anyone.  it fixes all the nunit problems
973         gonzalo was having.
975         * WebConfigurationHost.cs (GetStreamName): in the MachineWebPath
976         case, handle the case where we have a WebConfigurationFileMap.
977         (MapPath): this is likely wrong, but in the case where we don't
978         have a file map or current HttpContext, just return the path.
980 2006-01-29  Chris Toshok  <toshok@ximian.com>
982         * HttpModulesSection.cs (LoadModules): I'm not sure we want to
983         solve this problem in this way, but the 1.x code forces
984         DefaultAuthenticationModule to be in the list of modules..
985         Without this fix (or something else) HttpContext.User is null when
986         it shouldn't be.
988 2006-01-26  Chris Toshok  <toshok@ximian.com>
990         * HttpConfigurationSystem.cs: new class that gets sections from
991         web.config files.
993         * WebConfigurationManager.cs: change a lot of the
994         NotImplementedExceptions to NotSupportedExceptions.
995         (AppSettings): implement by just returning
996         ConfigurationManager.AppSettings (note this is broken because
997         ConfigurationManager.AppSettings are read-only, but it works for
998         reading.)
999         (ConnectionStrings): same (and probably broken in the same way..)
1000         (Init): replace the 2.0 IInternalConfigSystem with our
1001         HttpConfigurationSystem.
1003         * WebConfigurationHost.cs: add a comment about how things are
1004         likely to work in the face of IRemoteWebConfigurationHostServer.
1005         (CreateConfigurationContext): return a WebContext instance.
1007 2006-01-25  Chris Toshok  <toshok@ximian.com>
1009         * AuthorizationSection.cs (IsValidUser): instead of a blanket
1010         false for a null user, just set the username to "" and short
1011         circuit out the check for roles.
1013 2006-01-25  Chris Toshok  <toshok@ximian.com>
1015         * AuthorizationRule.cs (CheckUser): handle * and ?, and use
1016         String.Compare instead of ==.
1017         (CheckVerb): use String.Compare instead of ==.
1019         * AuthorizationSection.cs (IsValidUser): return false for a null
1020         user.
1022 2006-01-22  Chris Toshok  <toshok@ximian.com>
1024         * GlobalizationSection.cs (VerifyData): quiet mcs.
1026 2006-01-18  Chris Toshok  <toshok@ximian.com>
1028         * SystemWebSectionGroup.cs: wrap System.Web.Services references in
1029         WEBSERVICES_DEP.
1031 2006-01-16  Chris Toshok  <toshok@ximian.com>
1033         * WebConfigurationManager.cs: implement a IConfigurationSystem for
1034         use with WebConfigurationManager.
1035         (GetSection): try to load the section
1036         using GetWebApplicationSection before calling into
1037         ConfigurationManager.GetSection.
1038         (GetWebApplicationConfiguration): move common code to here.
1039         (GetWebApplicationSection): use GetWebApplicationConfiguration.
1040         (AppSettings): implement.
1042         * WebConfigurationHost.cs (GetWebConfigFileName): add
1043         "Web.Config", and move to an array/loop implementation.  maybe we
1044         should scan the directory and check ToLower() instead of
1045         explicitly enumerating?
1047 2006-01-10  Chris Toshok  <toshok@ximian.com>
1049         * SystemWebSectionGroup.cs (HostingEnvironment): enable this property.
1050         (ProcessModel): add the ConfigurationPropertyAttribute.
1052 2006-01-10  Chris Toshok  <toshok@ximian.com>
1054         * PagesSection.cs (.cctor): fix the default value for the
1055         enableSessionState attribute - it's not a bool, but a
1056         PagesEnableSessionState enum.
1058 2006-01-10  Chris Toshok  <toshok@ximian.com>
1060         * MachineKeySection.cs (ValidationKeyBytes, DecryptionKeyBytes,
1061         DecryptionKey192Bits): if the keys are null, generate them.  Fixes
1062         Page.EnableViewStateMac support.
1064 2006-01-09  Chris Toshok  <toshok@ximian.com>
1066         * RoleManagerSection.cs, SqlCacheDepencendySection.cs,
1067         SessionStateSection.cs, TraceSection.cs, SecurityPolicySection.cs,
1068         PagesSection.cs, RulesSettings.cs, UrlMappingSection.cs: fix
1069         dumper output.
1071 2006-01-09  Chris Toshok  <toshok@ximian.com>
1073         * ExpressionBuilderCollection.cs (.cctor): no need to create a
1074         collection property here.  we're already in the collection.
1076         * CompilationSection.cs: fix typo.
1078 2006-01-04  Chris Toshok  <toshok@ximian.com>
1080         * MachineKeySection.cs: bring over some more internal methods from
1081         MachineKeyConfig, and call Set{Decryption,Validation}Key from
1082         their respective property setters.
1084 2006-01-03  Chris Toshok  <toshok@ximian.com>
1086         * AuthorizationSection.cs (IsValidUser): add analogous method from
1087         AuthorizationConfig.cs.
1089         * AuthorizationRule.cs: add predicates for Verb, User, and Role
1090         analogous to what existed in AuthorizationConfig.cs.
1092 2005-12-11  Chris Toshok  <toshok@ximian.com>
1094         * WebConfigurationManager.cs (OpenMachineConfiguration): just call
1095         ConfigurationManager.OpenMachineConfiguration.
1096         (OpenWebConfiguration): remove the "IntPtr userToken" version and
1097         add a "string userName" version to clean up corcompare output.
1098         Modify all the overloads to pass null instead of IntPtr.Zero.
1099         (GetWebApplicationSection): if we're not running in a web
1100         application, use the machine configuration.
1102 2005-12-06  Chris Toshok  <toshok@ximian.com>
1104         * CodeSubDirectory.cs (DirectoryName): don't use an private field,
1105         but base[directoyNameProp].
1107         * AuthorizationRuleCollection.cs (Add): use BaseAdd (rule, false),
1108         so we can insert duplicates.
1109         (GetKey): nuke.
1110         (GetElementKey): MS for some reason just uses the action for the
1111         key, ToString()'ed.
1112         (Remove): pass the correct key.
1114         * ProfileGroupSettings.cs (GetHashCode): implement.
1116         * GlobalizationSection.cs (GetEncoding): for the utf-8 case, just
1117         use Encoding.UTF8.
1119         * AssemblyCollection.cs (Add): use BaseAdd (info, false) so we can
1120         insert duplicates.
1122         * CacheSection.cs (.cctor): make privateByteLimit's default 0L so
1123         we don't get a invalid cast exception later on.
1125         * AuthorizationRule.cs (VerifyData): split out the verification
1126         foo from PreSerialize.
1127         (PostDeserialize): so we can call it from here.
1128         (PreSerialize): and here.
1130 2005-12-05  Chris Toshok  <toshok@ximian.com>
1132         * AuthorizationRuleCollection.cs (GetKey): split out the logic for
1133         creating a key from a rule here.
1134         (GetElementKey): use it here.
1135         (Remove): and here.
1137 2005-12-04  Chris Toshok  <toshok@ximian.com>
1139         * UrlMapping.cs: add an internal argument-less ctor.
1141         * UrlMappingCollection.cs (CreateNewElement): use argument-less
1142         ctor.
1143         (GetKey): implement.
1144         (AllKeys): implement.
1146         * TrustLevel.cs: add an internal argument-less ctor.
1147         
1148         * TrustLevelCollection.cs (Set): implement.
1149         (CreateNewElement): use argument-less ctor.
1150         (IsElementName): implement.
1151         (ElementName): implement.
1152         (set_Item (int index)): use Set.
1153         (ThrowOnDuplicate): implement.
1154         
1155         * TagPrefixInfo.cs: add internal argument-less ctor.
1157         * TagPrefixCollection.cs (CreateNewElement): call argument-less
1158         ctor.
1159         (CollectionType): add text to TODO.
1160         (ElementName): implement.
1161         
1162         * SqlCacheDependencyDatabaseCollection.cs (Set): implement.
1163         (AllKeys): implement.
1165         * RuleSettings.cs: add internal argument-less ctor.
1167         * RuleSettingsCollection.cs (Contains): implement.
1168         (CreateNewElement): use argument-less ctor.
1169         (IndexOf): implement.
1170         (Insert): implement.
1172         * RootProfilePropertySettingsCollection.cs (IsModified): chain up
1173         to base.IsModified for now.
1174         (Reset): chain up to base.Reset for now.
1175         (ResetModified): chain up to base.ResetModified for now.
1177         * ProfileSettings.cs: add internal argument-less ctor.
1179         * ProfileSettingsCollection.cs (Contains): implement.
1180         (CreateNewElement): use argument-less ctor.
1181         (IndexOf): implement.
1182         (Insert): implement.
1183         
1184         * ProfilePropertySettingsCollection.cs (IndexOf): implement.
1185         (Set): implement.
1186         (AllKeys): implement.
1187         
1188         * ProfileGroupSettings.cs: add internal argument-less ctor.
1190         * ProfileGroupSettingsCollection.cs (CreateNewElement): use
1191         parameter-less ctor.
1192         (GetKey): implement.
1193         (ResetModified): for now call base.ResetModified.
1194         (Set): implement.
1195         (AllKeys): implement.
1196         
1197         * OutputCacheProfile.cs: add internal argument-less ctor.
1199         * OutputCacheProfileCollection.cs (CreateNewElement): use
1200         parameter-less ctor.
1201         (Set): implement.
1202         (AllKeys): implement.
1204         * HttpModuleActionCollection.cs (Add): remove MonoTODO.
1205         (CreateNewElement): same.
1206         
1207         * HttpHandlerActionCollection.cs (GetElementKey): build up the key
1208         from both the path and the verb.
1209         (Remove): same.
1211         * FormsAuthenticationUserCollection.cs (Set): implement.
1212         (AllKeys): implement.
1214         * EventMappingSettings.cs: add an internal argument-less ctor.
1216         * EventMappingSettingsCollection.cs (Contains): implement.
1217         (CreateNewElement): use argument-less ctor.
1218         (IndexOf): implement.
1219         (Insert): implement.
1221         * CompilerCollection.cs (GetKey): implement.
1222         (AllKeys): implement.
1224         * ClientTargetCollection.cs (GetKey): implement.
1225         (AllKeys): implement.
1227         * AuthorizationRuleCollection.cs (Set): implement.
1228         (ElementName): add some text to the MonoTODO.
1229         (set_Item (int index)): use Set.
1231 2005-12-04  Chris Toshok  <toshok@ximian.com>
1233         * CustomError.cs: add an internal argument-less ctor for use by
1234         the collection.
1236         * CustomErrorCollection.cs: implement all the MonoTODO's.
1238 2005-12-02  Chris Toshok  <toshok@ximian.com>
1240         * GlobalizationSection.cs (VerifyData): split out the stuff that
1241         used to live in PreSerialize here.
1242         (PreSerialize): call VerifyData here.
1243         (PostDeserialize): and here.
1244         
1245 2005-12-01  Chris Toshok  <toshok@ximian.com>
1247         * GlobalizationSection.cs (PreSerialize): add checks for Culture
1248         and UICulture properties.
1250 2005-12-01  Chris Toshok  <toshok@ximian.com>
1252         * AuthorizationRule.cs (..ctor): provide default values for
1253         roles/users/verbs here.  Not sure if we should do this in the ctor
1254         or if the System.Configuration infrastructure should.. time will
1255         tell.
1256         (PreSerialize): throw if Roles.Count and Users.Count == 0.
1257         (SerializeElement): write out the element here.  don't chain up to
1258         the base class since that has differing behavior than what we
1259         want.
1261 2005-11-30  Chris Toshok  <toshok@ximian.com>
1263         * CompilerCollection.cs: ugly hack to fix the
1264         2.0-without-config-2.0 case.  wrap this file in #if
1265         CONFIGURATION_2_0 as well as #if NET_2_0.
1266         
1267         * Compiler.cs: same.
1269 2005-11-28  Chris Toshok  <toshok@ximian.com>
1271         * SessionStateSection.cs (CookieLess): correct the compat function
1272         implementation.
1274 2005-11-28  Chris Toshok  <toshok@ximian.com>
1276         * GlobalizationSection.cs (GetEncoding): if the encoding name is
1277         null, default to utf-8 before we hit the try block, so we don't
1278         throw and generate a spurious warning.
1280         * SessionStateSection.cs: The Cookieless handling needs a custom
1281         parser, it appears, as the converter is a StringConverter, not a
1282         GenericEnumConverter.
1283         (ParseCookieMode): the parser.
1285 2005-11-28  Chris Toshok  <toshok@ximian.com>
1287         * PagesSection.cs (GetInstance): nuke.
1289         * CompilationSection.cs (GetInstance): nuke.
1291 2005-11-28  Chris Toshok  <toshok@ximian.com>
1293         * HttpHandlerAction.cs: add some c&p code from the 1.1 config
1294         stuff to look for matching handlers.
1295         (..ctor): add parameterless ctor.
1296         
1297         * HttpHandlerActionCollection.cs: clean up formatting.
1298         (CreateNewElement): call the parameter-less ctor for
1299         HttpHandlerAction.
1301         * HttpHandlersSection.cs (..ctor): add a ConfigurationProperty for
1302         the default collection.
1303         (get_Handlers): implement.
1304         (LocateHandler): copy over (and massage) some 1.1 config code.
1306         * MachineKeySection.cs: move some code over from the 1.1 config
1307         code to deal with autogeneration of keys, as well as converting
1308         from the string rep to the byte[] rep.
1310 2005-11-28  Chris Toshok  <toshok@ximian.com>
1312         * HttpModuleActionCollection.cs (CreateNewElement): use the new
1313         HttpModuleAction ctor.
1315         * HttpModuleAction.cs: add internal ctor with no parameters, for
1316         use in HttpModuleActionCollection.
1318 2005-11-28  Chris Toshok  <toshok@ximian.com>
1320         * GlobalizationSection.cs (..cctor): the encoding
1321         ConfigurationProperties are of type "string", even though the
1322         properties themselves are of type Encoding.  we do conversions
1323         manually in the setter/getters.  gross.  Add code (mostly c&p +
1324         massaged from GlobalizationConfigurationHandler) for this and also
1325         to handle the culture gettes.
1327 2005-11-26  Chris Toshok  <toshok@ximian.com>
1329         * AuthorizationRuleCollection.cs (GetElementKey): implement this.
1331         * ProfilePropertyNameValidator.cs: make this internal, and add a
1332         blurb about how MS doesn't do the testing you'd expect them to.
1334 2005-11-25  Chris Toshok  <toshok@ximian.com>
1336         * AuthorizationRuleCollection.cs (CreateNewElement): remove
1337         MonoTODO.
1339         * CompilationSection.cs (GetRuntimeObject): add comment to TODO.
1341         * ProfileGroupSettings.cs: reformat some things.
1343         * FormsAuthenticationUser.cs (Name): remove MonoTODO.
1345         * WebPartsSection.cs (GetRuntimeObject): change TODO comment.
1347         * ProfilePropertySettings.cs: add internal argument-less ctor.
1349         * IdentitySection.cs (GetRuntimeObject): return this.
1351         * ProfilePropertySettingsCollection.cs: implement much of the
1352         TODO's.
1353         
1354         * WebControlsSection.cs (GetRuntimeObject): implement.
1356         * SqlCacheDependencyDatabaseCollection.cs (GetElementKey):
1357         implement.
1358         (GetKey): implement.
1360 2005-11-24  Chris Toshok  <toshok@ximian.com>
1362         * AssemblyInfo.cs: move this here from System.Web.Configuration,
1363         and fix up the properties.
1365         * SystemWebSectionGroup.cs: enable most of the sections (2
1366         remaining to be enabled.)
1368 2005-11-24  Chris Toshok  <toshok@ximian.com>
1370         * ProcessModelSection.cs, SqlCacheDependencySection.cs,
1371         SessionStateSection.cs, PassportAuthentication.cs,
1372         FormsAuthenticationConfiguration.cs,
1373         SqlCacheDependencyDatabase.cs, HttpModuleAction.cs,
1374         BufferModeSettings.cs, TagPrefixInfo.cs (..cctor): init
1375         elementProperty.
1376         (ValidateElement): new static validator callback.
1377         (ElementProperty): enable this, return elementProperty.
1378         
1379 2005-11-23  Chris Toshok  <toshok@ximian.com>
1381         * ProfilePropertyNameValidator.cs: new implementation.
1382         
1383         * ProfilePropertySettings.cs, ProfileGroupSettings.cs,
1384         ClientTargetSection.cs, ClientTargetSection.cs,
1385         BufferModeSettings.cs, HttpModulesSection.cs,
1386         WebPartsPersonalization.cs, TransformerInfo.cs, TrustLevel.cs,
1387         NamespaceInfo.cs, SqlCacheDependencyDatabase.cs,
1388         AuthenticationSection.cs, RuleSettings.cs,
1389         FormsAuthenticationUser.cs, WebPartsSection.cs, BuildProvider.cs,
1390         WebPartsPersonalizationAuthorization.cs, Compiler.cs,
1391         ExpressionBuilder.cs, OutputCacheProfile.cs,
1392         FormsAuthenticationCredentials.cs, XhtmlConformanceSection.cs,
1393         OutputCacheSettingsSection.cs, CustomError.cs, TraceSection.cs,
1394         ExpressionBuilderCollection.cs, ProfileSettings.cs,
1395         SessionStateSection.cs, HealthMonitoringSection.cs,
1396         FormsAuthenticationConfiguration.cs, HttpRuntimeSection.cs,
1397         SessionPageStateSection.cs, TrustSection.cs,
1398         AnonymousIdentificationSection.cs, WebControlsSection.cs,
1399         ClientTarget.cs, TagMapInfo.cs, AuthorizationSection.cs,
1400         ProcessModelSection.cs, RoleManagerSection.cs,
1401         MembershipSection.cs, CustomErrorsSection.cs (..cctor): fix
1402         validator/converters.
1403         
1404         * MachineKeySection.cs (..cctor): fix validators/converters.
1405         (Validation): enable the Converter.
1406         
1407         * CodeSubDirectory.cs (..cctor): fix validator/converters.
1408         (DirectoryName): add note about missing validator decoration.
1409         
1410         * HttpModuleAction.cs (..cctor): init properties.
1411         (Properties): return properties.
1412         
1413         * CompilationSection.cs (..cctor): fix validator/converters.
1414         (GetInstance): add in this pre-2.0 interface for the time being,
1415         hopefully it'll make it easier to migrate later on.
1416         
1417         * HttpHandlerActionCollection.cs (..cctor): init properties.
1418         (Properties): return properties.
1420         * PagesSection.cs (..cctor): fix validator/converters.
1421         (GetInstance): add in this pre-2.0 interface for the time being,
1422         hopefully it'll make it easier to migrate later on.
1423         
1424         * HttpHandlersSection.cs (..cctor): init properties.
1425         (Properties): return properties.
1426         
1427         * EventMappingSettings.cs (..cctor): fix validator/converters.
1428         (Name): add note about missing validator decoration.
1429         
1430         * HttpHandlerAction.cs (..cctor): fix validator/converters.
1431         (PAth, Type, Verb): add note about missing validator decoration.
1433         * NamespaceCollection.cs (..cctor): fix properties.
1435         * ProfilePropertySettingsCollection.cs (..cctor): init properties.
1436         (..ctor): don't throw NIE.
1437         (Properties): return properties.
1439         * HttpModuleActionCollection.cs (..cctor): init properties.
1440         (Properties): return properties.
1442         * CacheSection.cs (..cctor): fix validators/converters.
1443         (PrivateBytesPollTime): add note about missing validator
1444         decoration.
1446         * AuthorizationRule.cs (..cctor): fix validators/converters.
1447         (Roles, Users, Verbs): enable the TypeConverter decorations.
1448         
1449         * UrlMapping.cs (ValidateUrl): static method for use as a
1450         validation callback.  unimplemented as yet.
1451         (..cctor): fix validators/converters.
1452         (MappedUrl): add note about missing validator decoration.
1453         
1454         * PropertyHelper.cs: static utility class which contains
1455         references to validators and converters for use in static
1456         constructors (building the Properties arrays).
1458 2005-11-23  Chris Toshok  <toshok@ximian.com>
1460         * MachineKeyValidationConverter.cs: new converter (and a pretty
1461         silly one, considering all it seems to do is convert "TripleDES"
1462         to "3DES").
1464         * HostingEnvironmentSection.cs (.cctor): use
1465         PositiveTimeSpanValidator like MS does.
1467 2005-11-18  Chris Toshok  <toshok@ximian.com>
1469         * HostingEnvironmentSection.cs (.cctor): add validators.
1471         * CompilationSection.cs (.cctor): fix defaultvalue of
1472         urlLinePragmas.
1474 2005-11-18  Chris Toshok  <toshok@ximian.com>
1476         * SystemWebSectionGroup.cs: enable a whole slew of properties.
1478         * RegexWorker.cs: stub this out.
1480         * HttpCapabilitiesBase.cs: remove GetClrVersions since it's in one
1481         of the other partial files.
1483         * CompilationSection.cs: fix this up.
1485         * PagesSection.cs: fix some types and add a comment to
1486         DeserializeSection.
1488         * CompilerCollection.cs (Add): new internal method.
1490         * ProvidersHelper.cs: put the using System.Configuration.Provider
1491         inside the NET_2_0 block.
1493         * CacheSection.cs: add validators.
1495 2005-11-14  Chris Toshok  <toshok@ximian.com>
1497         * BufferModeSettings.cs: add validators/converters to the
1498         programmatic property list.
1499         
1500         * BuildProvider.cs: add validators/converters to the programmatic
1501         property list, and add an internal ctor with no args.
1503         * Compiler.cs: wrap the code i hacked from the 1.1 stuff with a
1504         #region.
1506         * BuildProviderCollection.cs (CreateNewElement): use the internal
1507         BuildProvider ctor to get around validation.
1509         * AssemblyCollection.cs: same.
1511 2005-11-14  Chris Toshok  <toshok@ximian.com>
1513         * TagPrefixCollection.cs (Remove): pass the key to BaseRemove.
1514         (set_Item (int index)): implement.
1515         
1516         * TagPrefixInfo.cs (Equals): implement.
1517         (GetHashCode): implement.
1519         * AuthorizationRuleCollection.cs (CreateNewElement(string)):
1520         implement propertly.
1521         (IndexOf): implement.
1522         (IsElementName): implement.
1523         (ElementName): implement.
1524         (Item (int index)): implement.
1525         
1526         * FormsAuthenticationUserCollection.cs (set_Item (int index)): implement.
1528         * UrlMappingCollection.cs (set_Item (int index)): implement.
1530         * OutputCacheProfileCollection.cs (set_Item (int index)): implement.
1532         * TransformerInfo.cs (Equals): implement.
1533         (GetHashCode): implement.
1535         * NamespaceInfo.cs (Equals): implement.
1536         (GetHashCode): implement.
1537         
1538         * ProfileSettingsCollection.cs (set_Item (int index)): implement.
1540         * TransformerInfoCollection.cs (set_Item (int index)): implement.
1542         * HttpHandlerActionCollection.cs (set_Item (int index)): implement.
1544         * BufferModesCollection.cs (set_Item (int index)): implement.
1546         * BuildProvider.cs: use the base[fooProp] pattern instead of
1547         instance fields.
1549         * ProfileGroupSettingsCollection.cs: implement most of this class.
1551         * RuleSettingsCollection.cs (set_Item (int index)): implement.
1553         * ClientTargetCollection.cs (set_Item (int index)): implement.
1555         * AssemblyCollection.cs (set_Item (int index)): implement.
1557         * BuildProviderCollection.cs (set_Item (int index)): reformat.
1559         * CustomError.cs (Equals): implement.
1560         (GetHashCode): implement.
1562         * ExpressionBuilderCollection.cs (set_Item (int index)): reformat.
1564         * PassportAuthentication.cs (RedirectUrl): express consternation
1565         in comment form.
1567         * NamespaceCollection.cs (set_Item (int index)): implement.
1569         * RootProfilePropertySettingsCollection.cs (SerializeElement): add
1570         comment.
1572         * ProfilePropertySettingsCollection.cs (set_Item (int index)):
1573         implement.
1575         * CustomErrorCollection.cs (set_Item (int index)): implement.
1577         * HttpModuleActionCollection.cs (set_Item (int index)): implement.
1579         * CodeSubDirectoriesCollection.cs (set_Item (int index)):
1580         implement.
1582         * CustomErrorsSection.cs (DeserializeSection): include call to
1583         base.DeserializeSection, and add MonoTODO.
1585         * EventMappingSettingsCollection.cs (set_Item (int index)):
1586         implement.
1588         * AuthorizationRule.cs (Equals): implement.
1589         (GetHashCode): implement.
1590         (SerializeElement): add comment.
1592         * TagMapCollection.cs (Remove): pass the key to BaseRemove.
1593         (set_Item (int index)): implement.
1594         
1595         * TagMapInfo.cs (Equals): implement.
1596         (GetHashCode): implement.
1597         (SerializeElement): add call to base.SerializeElement.
1599         * TrustLevelCollection.cs (Remove): pass the key to BaseRemove.
1600         (GetElementKey): implement.
1602         * SqlCacheDependencyDatabase.cs (set_Item (int index)): implement.
1604         * WebContext.cs: new implementation.
1606 2005-11-13  Chris Toshok  <toshok@ximian.com>
1608         * AnonymousIdentificationSection.cs: rework this class a bit to
1609         fit in with the rest of S.W.C.  Add validators to the
1610         ConfigurationProperty ctor calls, a pattern which will need to be
1611         replicated across the entire assembly, it appears (uggggh).
1613 2005-11-13  Chris Toshok  <toshok@ximian.com>
1615         * AuthorizationRuleCollection.cs: fix ConfigurationCollection
1616         attribute.
1618         * TransformerInfo.cs: fix corcompare.
1620         * SqlCacheDependencyDatabase.cs: mark ctor internal to fix
1621         corcompare.
1623         * AuthenticationSection.cs: add missing Reset stub.
1625         * ProfileSettingsCollection.cs: use the more succint ctor.
1627         * FormsAuthenticationUser.cs: enable the TypeConverter on "name".
1629         * GlobalizationSection.cs: fix up corcompare.
1631         * WebPartsSection.cs: fix up corcompare.
1633         * ProfileGroupSettingsCollection.cs: add missing
1634         ConfigurationCollection attribute.
1636         * ExpressionBuilder.cs: implement.
1638         * FormsAuthenticationCredentials.cs: fix up corcompare.
1640         * AssemblyCollection.cs: implement Properties.
1642         * SiteMapSection.cs: implement Properties.
1644         * ExpressionBuilderCollection.cs: fix up corcompare.
1646         * ProfileSettings.cs: add missing ctor.
1648         * PassportAuthentication.cs: new implementation.
1650         * SqlCacheDependencySection.cs: fix up corcompare.
1652         * ProfilePropertySettingsCollection.cs: fix up corcompare.
1654         * HttpModuleActionCollection.cs: fix up corcompare.
1656         * EventMappingSettingsCollection.cs: fix up corcompare.
1658         * AuthorizationRule.cs: fix up corcompare.
1660         * WebControlsSection.cs: fix up corcompare.
1662         * AuthorizationSection.cs: fix up corcompare.
1664         * MembershipSection.cs: clean this up, implement Properties, fix
1665         up corcompare, etc.
1667 2005-11-13  Chris Toshok  <toshok@ximian.com>
1669         * UrlMapping.cs, CustomErrorCollection.cs, CustomError.cs,
1670         HostingEnvironmentSection.cs, TrustLevel.cs,
1671         HttpCookiesSection.cs, UrlMappingsSection.cs,
1672         UrlMappingCollection.cs, LowerCaseStringConverter.cs,
1673         RoleManagerSection.cs, ProcessModelSection.cs,
1674         TrustLevelCollection.cs, ClientTarget.cs, CustomErrorsSection.cs,
1675         MachineKeySection.cs, SessionPageStateSection.cs,
1676         SessionStateSection.cs, ProvidersHelper.cs,
1677         ClientTargetCollection.cs, SecurityPolicySection.cs,
1678         HttpCapabilitiesBase.cs, ClientTargetSection.cs: Another large
1679         swath.
1682 2005-11-12  Chris Toshok  <toshok@ximian.com>
1684         * AuthorizationRuleCollection.cs, AuthorizationRule.cs,
1685         AuthorizationSection.cs, BufferModesCollection.cs,
1686         BufferModeSettings.cs, CacheSection.cs, CompilerCollection.cs,
1687         Compiler.cs, DeploymentSection.cs,
1688         EventMappingSettingsCollection.cs, EventMappingSettings.cs,
1689         GlobalizationSection.cs, HealthMonitoringSection.cs,
1690         IdentitySection.cs, OutputCacheProfileCollection.cs,
1691         OutputCacheProfile.cs, OutputCacheSection.cs,
1692         OutputCacheSettingsSection.cs, ProfileSettingsCollection.cs,
1693         ProfileSettings.cs, RuleSettingsCollection.cs, RuleSettings.cs,
1694         SqlCacheDependencyDatabaseCollection.cs,
1695         SqlCacheDependencyDatabase.cs, SqlCacheDependencySection.cs,
1696         SystemWebCachingSectionGroup.cs, TraceSection.cs,
1697         TransformerInfoCollection.cs, TransformerInfo.cs, TrustSection.cs,
1698         WebControlsSection.cs, WebPartsPersonalizationAuthorization.cs,
1699         WebPartsPersonalization.cs, WebPartsSection.cs,
1700         XhtmlConformanceSection.cs: a whole slew of new classes.  the
1701         fruits of tons of c&p and ibuprofen.
1704 2005-11-09  Chris Toshok  <toshok@ximian.com>
1706         * PagesSection.cs, AuthenticationSection.cs, BuildProvider.cs,
1707         BuildProviderCollection.cs, HttpHandlerActionCollection.cs,
1708         HttpModulesSection.cs, HttpModuleAction.cs,
1709         HttpModuleActionCollection.cs, AnonymousIdentificationSection.cs,
1710         CodeSubDirectory.cs, CodeSubDirectoriesCollection.cs,
1711         SystemWebSectionGroup.cs, SiteMapSection.cs,
1712         WebConfigurationManager.cs: flesh out the implementation.
1714         * TagMap*.cs, TagPrefix*.cs: new implementation.
1716         * FormsAuthentication*.cs: new implementation.
1718         * Profile*.cs: new implementation.
1720         * Namespace*.cs: new implementation.
1722         * HttpRuntimeSection.cs: new implementation.
1723