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