2010-02-24 Marek Habersack <mhabersack@novell.com>
[mono.git] / mcs / class / System.Web / System.Web.Configuration_2.0 / ChangeLog
1 2010-02-23  Marek Habersack  <mhabersack@novell.com>
2
3         * SessionStateSection.cs: implemented 4.0 properties -
4         CompressionEnabled and SqlConnectionRetryInterval 
5
6 2010-02-12  Marek Habersack  <mhabersack@novell.com>
7
8         * WebConfigurationHost.cs: implemented {Encrypt,Decrypt}Section
9
10 2010-01-20  Marek Habersack  <mhabersack@novell.com>
11
12         * OutputCacheSection.cs: implemented the Providers and
13         DefaultProviderName 4.0 properties.
14
15 2010-01-09  Marek Habersack  <mhabersack@novell.com>
16
17         * WebConfigurationManager.cs: GetSection properly handles looking
18         up and caching of <location> instances. Part of fix for bug
19         #568441
20
21         * WebConfigurationHost.cs: GetConfigPathFromLocationSubPath
22         calculatesthe path relative to the current config file path. Part
23         of fix for bug #568441
24
25 2009-12-02  Marek Habersack  <mhabersack@novell.com>
26
27         * CompilationSection.cs: added two properties -
28         OptimizeCompilations (3.5+) and TargetFramework (4.0+)
29
30 2009-11-19  Marek Habersack  <mhabersack@novell.com>
31
32         * WebConfigurationHost.cs: IsDefinitionAllowed now normalizes the
33         passed configuration path, so that MachineToApplication sections
34
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.
38
39 2009-11-10  Marek Habersack  <mhabersack@novell.com>
40
41         * WebConfigurationManager.cs: path passed to OpenWebConfiguration
42         from GetSection does not come from FindWebConfig.
43
44 2009-11-09  Marek Habersack  <mhabersack@novell.com>
45
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
50
51 2009-10-07  Marek Habersack  <mhabersack@novell.com>
52
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.
62
63 2009-08-20  Marek Habersack  <mhabersack@novell.com>
64
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
69
70 2009-07-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
71
72         * WebConfigurationManager.cs: avoid possible infinite loop when the
73         path starts with ~ and 1 file check.
74
75 2009-07-15  Marek Habersack  <mhabersack@novell.com>
76
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
84
85 2009-07-14  Marek Habersack  <mhabersack@novell.com>
86
87         * WebConfigurationManager.cs: added support for suppressing
88         application reload when the main config file is written to from
89         application.
90
91         * WebConfigurationHost.cs: added minimal implementation of
92         WriteCompleted, which checks if there's need to suppress
93         application reload.
94
95 2009-07-13  Marek Habersack  <mhabersack@novell.com>
96
97         * ProvidersHelper.cs: InstantiateProvider doesn't have to
98         explicitly look for types in App_Code assemblies - this is done in
99         HttpApplication.LoadType.
100
101 2009-07-09 Gonzalo Paniagua Javier <gonzalo@novell.com>
102
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.
107
108 2009-06-08 Gonzalo Paniagua Javier <gonzalo@novell.com>
109
110         * HttpHandlerAction.cs: fix path matching when the pattern has more
111         than one slash.
112
113 2009-06-05  Marek Habersack  <mhabersack@novell.com>
114
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
122
123 2009-06-03  Marek Habersack  <mhabersack@novell.com>
124
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
130
131 2009-05-14  Marek Habersack  <mhabersack@novell.com>
132
133         * HttpHandlersSection.cs: if we're matching a default handler,
134         disallow caching.
135
136 2009-04-03  Marek Habersack  <mhabersack@novell.com>
137
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
142
143         * ApplicationSettingsConfigurationFileMap.cs: added.
144
145 2009-03-12  Dean Brettle  <dean@brettle.com>
146
147         * nBrowser/Build.cs: made Browser() method thread-safe and moved the
148         actual tree creation to a private InitializeTree() method for clarity.
149
150 2009-03-01  Marek Habersack  <mhabersack@novell.com>
151
152         * WebConfigurationManager.cs: optimized GetWebApplicationSection a
153         bit
154
155 2009-02-28  Marek Habersack  <mhabersack@novell.com>
156
157         * WebConfigurationManager.cs: make sure no nrex happens in
158         GetSectionCacheKey ()
159
160 2009-02-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
161
162         * WebConfigurationManager.cs: generate a hash from the string hsah
163         codes instead of concatenating them.
164
165 2009-01-27  Marek Habersack  <mhabersack@novell.com>
166
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.
171
172 2009-01-26  Marek Habersack  <mhabersack@novell.com>
173
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
177
178 2008-01-09  Dean Brettle  <dean@brettle.com>
179
180         * nBrowser/Node.cs: Fixed compatibility bug where <identification> sections were required
181         in browser defs.  
182
183 2009-01-09  Marek Habersack  <mhabersack@novell.com>
184
185         * WebConfigurationManager.cs: do not normalize the path in
186         FindWebConfig when getting the virtual directory.
187
188 2009-01-08  Marek Habersack  <mhabersack@novell.com>
189
190         * WebConfigurationManager.cs: improve performance of
191         FindWebConfig.
192
193 2009-01-07  Marek Habersack  <mhabersack@novell.com>
194
195         * HttpModulesSection.cs: allow for modules with non-public
196         constructors. Fises bug #463971
197
198         * HttpHandlerAction.cs: allow for handlers with non-public
199         constructors. Fixes bug #463971
200
201 2008-12-24  Marek Habersack  <mhabersack@novell.com>
202
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.
208
209         * WebConfigurationHost.cs: made GetWebConfigFileName internal
210         static, so that code can be reused from WebConfigurationManager.
211
212 2008-12-23  Marek Habersack  <mhabersack@novell.com>
213
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.
220
221 2008-12-16  Marek Habersack  <mhabersack@novell.com>
222
223         * WebConfigurationHost.cs: IsDefinitionAllowed should treat
224         configPath == "~" as the root application path.
225
226 2008-12-12  Owen Brady <Ocean@owenbrady.net>
227
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.
235
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.
241
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>
248
249         * CapabilitiesChecksum.cs: implement Hex and MapToHex more efficiently.
250
251 2008-10-09  Marek Habersack  <mhabersack@novell.com>
252
253         * MonoSettingsSection.cs: added - a section for mono-specific
254         settings.
255
256 2008-10-01  Marek Habersack  <mhabersack@novell.com>
257
258         * CapabilitiesResult.cs: added support for the "browsers"
259         capability - a collection of matching browser ids.
260
261         * nBrowser/Node.cs: store matching browser ids in the capabilities
262         collection (to support IsBrowser correctly)
263
264 2008-07-25  Dean Brettle <dean@brettle.com>
265
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().
276
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.
281
282         * nBrowser/Node.cs: Fixed bug where capabilities with multiple $ substitutions only
283         had one applied.
284
285 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
286
287         * CapabilitiesResult.cs: Make the RandomRoboBotKeywords array static and compute it
288         only once.
289
290 2008-06-30  Marek Habersack  <mhabersack@novell.com>
291
292         * CompilationSection.cs: hush the warnings
293
294 2008-06-26  Zoltan Varga  <vargaz@gmail.com>
295
296         * nBrowser/Node.cs nBrowser/Result.cs: Avoid looking up adapter types names for
297         every request in every assembly.
298
299 2008-05-22  Marek Habersack  <mhabersack@novell.com>
300
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!
305
306 2008-05-07  Marek Habersack  <mhabersack@novell.com>
307
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! 
311
312 2008-03-23  Dean Brettle <dean@brettle.com>
313
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.
330
331 2008-03-09  Dean Brettle <dean@brettle.com> 
332
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 
352
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>
360
361         * ProvidersHelper.cs: fixed thread safety issue in InstantiateProvider
362
363 2008-03-01  Marek Habersack  <mhabersack@novell.com>
364
365         * WebConfigurationManager.cs: SettingsMappingManager has been
366         moved to Mono.Web.dll
367
368 2008-02-28  Marek Habersack  <mhabersack@novell.com>
369
370         * HttpHandlerAction.cs: ignore case when matching handler
371         paths. Fixes bug #364995
372
373 2008-02-26  Marek Habersack  <mhabersack@novell.com>
374
375         * BuildProviderCollection.cs: be case-insensitive when looking for
376         the extension match.
377
378 2008-02-25  Marek Habersack  <mhabersack@novell.com>
379
380         * WebConfigurationManager.cs: hashtable can contain a key with a
381         null value, avoid adding duplicate keys in such cases.
382
383 2008-02-18  Vladimir Krasnov  <vladimirk@mainsoft.com>
384
385         * WebConfigurationManager.cs: performance improvement, cached
386         GetSection method
387
388 2008-02-07  Vladimir Krasnov  <vladimirk@mainsoft.com>
389
390         * GlobalizationSection.cs: fixed GetSanitizedCulture, performance
391         optimization
392
393 2008-02-05  Marek Habersack  <mhabersack@novell.com>
394
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.
401
402 2008-01-27  Daniel Nauck <dna@mono-project.de>
403
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                 
410
411 2007-12-27  Marek Habersack  <mhabersack@novell.com>
412
413         * ProfileGroupSettingsCollection.cs: added an internal method to
414         add/overwrite new group settings. Used from
415         RootProfilePropertySettingsCollection.
416
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.
424
425         * ProfileSection.cs: defaultProviderProp typo - the name of the
426         provider should be "AspNetSqlProfileProvider"
427
428         * RootProfilePropertySettingsCollection.cs: added
429         OnDeseerializeUnrecognizedElement to support the profile 'group'
430         element.
431         Added a missing Unmerge method.
432
433 2007-12-11  Vladimir Krasnov  <vladimirk@mainsoft.com>
434
435         * SiteMapSection.cs: fixed ProvidersInternal property to be thread safe
436
437 2007-12-08  Marek Habersack  <mhabersack@novell.com>
438
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.
442
443 2007-11-23  Marek Habersack  <mhabersack@novell.com>
444
445         * TagPrefixCollection.cs: changed the collection type to
446         BasicMap.
447
448         * ProfileSection.cs: added missing Properties property, added a
449         static constructor to create property descriptors. Use property
450         descriptors in property accessors.
451
452         * ProfileGroupSettingsCollection.cs: added missing attribute to
453         the class, removed CollectionType method, added missing IsModified
454         and ResetModified methods, added missing Properties property.
455
456         * ProfileGroupSettings.cs: added missing Properties property,
457         adjusted the set of custom attributes of the PropertySettings
458         property.
459
460         * ProcessModelSection.cs: change the default value of the CpuMask
461         property.
462
463         * OutputCacheSection.cs: added the EnableKernelCacheForVaryByStar
464         property.
465
466         * OutputCacheProfile.cs: added the VaryByContentEncoding property.
467
468         * FormsAuthenticationConfiguration.cs: corrected defaults for the
469         Timeout property.
470
471         * ExpressionBuilder.cs: corrected defaults for the
472         ExpressionPrefix and Type properties.
473
474         * CustomErrorsSection.cs: added two missing overrides -
475         DeserializeSection and Reset.
476
477         * ClientTargetSection.cs: added the missing Properties property.
478         Added static constructor to create the property collection.
479
480         * CustomErrorCollection.cs: removed the ThrowOnDuplicate
481         property.
482
483         * CacheSection.cs: corrected defaults for the
484         PercentagePhysicalMemoryUsedLimit property.
485
486         * ClientTargetCollection.cs: added missing Properties property.
487
488         * IConfigMapPathFactory.cs: added
489
490         * IConfigMapPath.cs: added
491
492         * RoleManagerSection.cs: added a static constructor, a collection
493         of properties, the missing Properties property.
494
495 2007-11-22  Marek Habersack  <mhabersack@novell.com>
496
497         * RoleManagerSection.cs: CookieTimeout property custom attributes
498         changed to match MS.NET's ones.
499
500         * AuthorizationRuleCollection.cs: removed the ThrowOnDuplicate
501         property - it's not found in the MS.NET version of the class.
502
503 2007-11-06  Marek Habersack  <mhabersack@novell.com>
504
505         * MachineKeySectionUtils.cs: make sure keys are autogenerated when
506         necessary.
507
508 2007-11-02  Marek Habersack  <mhabersack@novell.com>
509
510         * HttpHandlerActionCollection.cs: clear http handler cache in
511         HttpApplication if the collection is modified.
512
513 2007-11-01  Marek Habersack  <mhabersack@novell.com>
514
515         * MachineKeySection.cs: moved all the internal static methods and
516         properties to MachineKeySectionUtils.cs
517
518         * MachineKeySectionUtils.cs: added. This file is included in the
519         System.Web.Extensions compilation.
520         The old properties from MachineKeySection.cs became methods.
521
522 2007-10-24  Marek Habersack  <mhabersack@novell.com>
523
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.
527
528 2007-10-17  Marek Habersack  <mhabersack@novell.com>
529
530         * WebConfigurationHost.cs: if running outside hosted environment,
531         read only the assemblyname.config configuration file instead of
532         web.config. Fixes bug #332425
533
534 2007-10-15  Marek Habersack  <mhabersack@novell.com>
535
536         * ProvidersHelper.cs: use HttpApplication.LoadType instead of
537         Type.GetType.
538
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.
542
543 2007-08-30  Marek Habersack  <mhabersack@novell.com>
544
545         * MachineKeySection.cs: retrieve the keys from the registry before
546         falling back to the old method. Fixes bug #76606
547
548 2007-08-23  Marek Habersack  <mhabersack@novell.com>
549
550         * ProvidersHelper.cs: HttpApplication.LoadTypeFromPrivateBin
551         renamed to LoadTypeFromBin.
552
553 2007-08-21  Marek Habersack  <mhabersack@novell.com>
554
555         * ProvidersHelper.cs: use HttpApplication.LoadTypeFromPrivateBin
556         to get the provider settings type.
557
558 2007-08-10  Gert Driesen  <drieseng@users.sourceforge.net>
559
560         * PagesEnableSessionState.cs: Marked internal on 1.0 profile.
561
562 2007-07-16  Vladimir Krasnov  <vladimirk@mainsoft.com>
563
564         * ProfileGroupSettingsCollection.cs: added ResetInternal internal
565         method
566         * RootProfilePropertySettingsCollection.cs: added Reset method
567         override to reset GroupSettings collection
568
569 2007-06-24  Vladimir Krasnov  <vladimirk@mainsoft.com>
570
571         * HttpHandlerAction.cs: fixed SplitPaths property to be thread safe
572
573 2007-06-12  Vladimir Krasnov  <vladimirk@mainsoft.com>
574
575         * CompilationSection.cs: TARGET_JVM on not supported features
576         * HttpModulesSection.cs: ctor should be static
577
578 2007-06-03  Adar Wesley <adarw@mainsoft.com>
579
580         * ProfilePropertySettingsCollection.cs: added missing method 
581         OnDeserializeUnrecognizedElement.
582
583 2007-05-30  Marek Habersack  <mhabersack@novell.com>
584
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.
588
589 2007-05-17  Igor Zelmanovich <igorz@mainsoft.com>
590
591         * WebConfigurationHost.cs: for TARGET_J2EE only:
592         prevent NullRefference Exception.
593
594 2007-05-15  Igor Zelmanovich <igorz@mainsoft.com>
595
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.
601
602 2007-05-15  Marek Habersack  <mhabersack@novell.com>
603
604         * BuildProviderCollection.cs: refactoring - use
605         HttpApplication.LoadType to actually look up the type.
606
607         * HttpHandlerAction.cs: as above
608
609         * WebConfigurationHost.cs: refactoring - moved the LoadType to
610         HttpApplication to share the code between 1.1 and 2.0 profiles.
611
612 2007-05-14  Marek Habersack  <mhabersack@novell.com>
613
614         * UrlMappingCollection.cs: implemented the Item (string) indexer.
615
616         * UrlMapping.cs: implemented the URL validation callback body
617         (doesn't work at the moment).
618
619 2007-05-14  Igor Zelmanovich <igorz@mainsoft.com>
620
621         * WebConfigurationManager.cs: 
622         make configurations synchronized.
623         added new internal method RemoveConfigurationFromCache.
624
625 2007-05-07  Marek Habersack  <mhabersack@novell.com>
626
627         * PagesSection.cs: buffering is on by default.
628
629 2007-04-24  Marek Habersack  <mhabersack@novell.com>
630
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).
636
637         * WebConfigurationManager.cs: added two internal methods for safe
638         retrieval of config sections.
639
640 2007-04-19  Marek Habersack  <mhabersack@novell.com>
641
642         * HttpHandlerAction.cs: look up types in all the toplevel
643         assemblies. Fixes bug #80897.
644
645 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
646
647         * ProcessModelSection.cs : cpuMask default value should be int,
648           not uint.
649
650 2007-04-06  Marek Habersack  <mhabersack@novell.com>
651
652         * CustomErrorsSection.cs: make the customErrors section work.
653
654         * PagesSection.cs: provide appropriate default value for the
655         asyncTimeout setting.
656
657 2007-03-24  Marek Habersack  <mhabersack@novell.com>
658
659         * WebConfigurationHost.cs: allow MachineToApplication definition
660         for config paths that equal the domain virtual app directory.
661
662 2007-03-22  Adar Wesley <adarw@mainsoft.com>
663
664         * HttpCapabilitiesBase.cs: implemented all capabilities.  Capabilities
665         still throw if there is no value in browscaps.ini and the property is called.
666
667 2007-03-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
668
669         * WebConfigurationManager.cs: fixed OpenWebConfiguration, should not
670         lock when checking if configuration is already open
671
672 2007-03-15  Vladimir Krasnov  <vladimirk@mainsoft.com>
673
674         * WebConfigurationManager.cs: fixed OpenWebConfiguration, removed 
675         GetBasePath call and locations search, since this not affects
676         configuration initialization, but improves performance
677
678 2007-03-12  Marek Habersack  <mhabersack@novell.com>
679
680         * ProvidersHelper.cs: support loading custom providers from
681         App_Code assemblies. Fixes bug #81071.
682         Also set eol-style to native.
683
684 2007-03-08  Gert Driesen  <drieseng@users.souceforge.net>
685
686         * PagesSection.cs: Revert part of Adar's patch that regresses
687         bug #80913.
688
689 2007-03-06  Adar Wesley <adarw@mainsoft.com>
690
691         * PagesSection.cs: improve Enum parsing and strongly typed default values.
692
693 2007-02-20  Marek Habersack  <grendello@gmail.com>
694
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.
701
702 2007-02-22  Marek Habersack  <grendello@gmail.com>
703
704         * CompilerCollection.cs: Optimize language lookup a bit.
705
706 2007-02-05  Konstantin Triger <kostat@mainsoft.com>
707
708         * TagPrefixCollection.cs: Fix element key creation.
709
710 2007-02-04  Konstantin Triger <kostat@mainsoft.com>
711
712         * NamespaceInfo.cs, HttpModuleAction.cs, RoleManagerSection.cs:
713                 fix the default value.
714
715 2007-02-02  Marek Habersack  <grendello@gmail.com>
716
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.
720
721 2007-01-04  Konstantin Triger <kostat@mainsoft.com>
722
723         * ProfileSection.cs: Ensure enabled = true by default; cleanup.
724
725 2006-12-27  Vladimir Krasnov  <vladimirk@mainsoft.com>
726
727         * CustomErrorCollection.cs: fixed ThrowOnDuplicate to false as in .net
728
729 2006-12-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
730
731         * GlobalizationSection.cs: make encodings actually work for the 2.0
732         profile.
733
734 2006-12-21  Marek Habersack  <grendello@gmail.com>
735
736         * TagMapInfo.cs: Add an internal default constructor for use from
737         TagMapCollection.
738
739         * TagMapCollection.cs: Don't call the string,string constructor of
740         TagMapInfo - the class disallows empty strings as values of its
741         properties.
742
743 2006-12-21  Vladimir Krasnov  <vladimirk@mainsoft.com>
744
745         * RoleManagerSection.cs: refactored using attributes
746
747 2006-12-20  Marek Habersack  <grendello@gmail.com>
748
749         * ProfilePropertyNameValidator.cs: added a few checks.
750
751 2006-12-18  Vladimir Krasnov  <vladimirk@mainsoft.com>
752
753         * WebConfigurationManager.cs: fixed GetSection to execute
754         GetRuntimeObject, refactored GetSection and GetWebApplicationSection
755
756 2006-12-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
757
758         * HttpHandlerAction.cs: fixed 'verb' config property
759
760 2006-12-07  Igor Zelmanovich  <igorz@mainsoft.com>
761
762         * ProvidersHelper.cs: fixed: load assembles from /bin
763
764 2006-11-22  Miguel de Icaza  <miguel@novell.com>
765
766         * SessionStateSection.cs: Do not call Enum.Parse with a null
767         argument, prevents an exception from being thrown.
768
769 2006-11-20  Marek Habersack  <grendello@gmail.com>
770
771         * GlobalizationSection.cs: Added support for "auto" cultures and
772         the "auto:DEFAULT_CULTURE" cultures.
773
774 2006-11-13  Konstantin Triger  <kostat@mainsoft.com>
775
776         * WebConfigurationHost.cs: use Type.GetType for loading full qualified types.
777
778 2006-11-05  Vladimir Krasnov  <vladimirk@mainsoft.com>
779
780         * ProfileGroupSettings.cs, ProfileGroupSettingsCollection.cs
781         ProfilePropertySettingsCollection.cs, ProfileSection.cs
782         RootProfilePropertySettingsCollection.cs: refactoring and fix of
783         <group> element
784
785 2006-10-18  Marek Habersack  <grendello@gmail.com>
786
787         * WebConfigurationManager.cs: implement support for extra
788         assemblies to be referenced when compiling a page.
789
790 2006-09-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
791
792         * WebConfigurationManager.cs: add null checks. Patch by Marek Habersack
793         that fixes bug #79283.
794
795 2006-09-06  Konstantin Triger  <kostat@mainsoft.com>
796
797         * WebConfigurationHost.cs: do not recourse as this will be done by
798                 Configuration object.
799
800 2006-08-08  Vladimir Krasnov  <vladimirk@mainsoft.com>
801
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
810
811 2006-06-26  Atsushi Enomoto  <atsushi@ximian.com>
812
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.
817
818 2006-06-08  Chris Toshok  <toshok@ximian.com>
819
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.
824
825 2006-05-18  Atsushi Enomoto  <atsushi@ximian.com>
826
827         * WebConfigurationManager.cs: recent sys.config.dll changes on
828           ConfigurationManager.GetSection() which should call
829           GetRuntimeObject() should also apply here. Fixed monodoc web.
830
831 2006-05-10  Andrew Skiba <andrews@mainsoft.com>
832
833         * HttpHandlerAction.cs: keep the internal exception
834
835 2006-05-08  Chris Toshok  <toshok@ximian.com>
836
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.
840
841 2006-05-04  Chris Toshok  <toshok@ximian.com>
842
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.
850
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.
856
857 2006-04-27  Chris Toshok  <toshok@ximian.com>
858
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.
863
864 2006-04-25  Chris Toshok  <toshok@ximian.com>
865
866         * AuthorizationRule.cs (Reset): finally figure out what this
867         method is supposed to do.  Assign our Action property based on
868         parentElement's.
869
870 2006-04-25  Chris Toshok  <toshok@ximian.com>
871
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.
875
876 2006-04-25  Chris Toshok  <toshok@ximian.com>
877
878         * WebConfigurationHost.cs (InitForConfiguration): stop going up
879         the virtual hierarchy once we reach the application's base virtual
880         path.
881
882 2006-04-24  Chris Toshok  <toshok@ximian.com>
883
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.
887
888 2006-04-11  Chris Toshok  <toshok@ximian.com>
889
890         * ExpressionBuilderCollection.cs (CreateNewElement): call argless
891         ctor.
892
893         * ExpressionBuilder.cs: add internal argumentless ctor for use by
894         the collection type.
895
896 2006-03-24  Chris Toshok  <toshok@ximian.com>
897
898         * WebConfigurationManager.cs (GetConfig): add a fallback case for
899         configuration sections that don't subclass from
900         ConfigurationSection.
901
902 2006-03-24  Chris Toshok  <toshok@ximian.com>
903
904         * WebConfigurationHost.cs: fix bug where OpenWebConfiguration
905         ("/") would result in 2 configurations for that toplevel path to
906         be opened.
907
908 2006-03-08  Chris Toshok  <toshok@ximian.com>
909
910         * ProvidersHelper.cs: implement this static class properly.
911
912         * SiteMapSection.cs (ProvidersInternal): add internal property to
913         get the actual SiteMapProviderCollection from here.
914
915 2006-02-28  Chris Toshok  <toshok@ximian.com>
916
917         * BuildProviderAppliesTo.cs, PagesToCountAction.cs: nuke.
918
919 2006-02-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
920
921         * Compiler.cs:
922         * CompilerCollection.cs: removed compatibility code.
923
924         * BuildProviderCollection.cs: add GetProviderForExtension().
925
926 2006-02-02  Chris Toshok  <toshok@ximian.com>
927
928         * WebConfigurationManager.cs (GetSection(string,string)):
929         implement.
930
931 2006-02-01  Atsushi Enomoto  <atsushi@ximian.com>
932
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.
939
940 2006-02-01  Chris Toshok  <toshok@ximian.com>
941
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.
948
949         * HttpConfigurationSystem.cs: GetWebApplicationSection =>
950         GetSection.
951
952 2006-02-01  Chris Toshok  <toshok@ximian.com>
953
954         * CompilerCollection.cs: CONFIGURATION_2_0 => NET_2_0
955
956         * Compiler.cs: same.
957
958 2006-02-01  Chris Toshok  <toshok@ximian.com>
959
960         * HttpConfigurationSystem.cs: SupportsUserConfig == true.  let's
961         use this to determine if ConfigurationManager.AppSettings should
962         be read-only or not.
963
964 2006-01-31  Chris Toshok  <toshok@ximian.com>
965
966         * WebConfigurationManager.cs: err, why did i ifdef stuff NET_2_0
967         inside of an ifdef NET_2_0?
968
969 2006-01-30  Chris Toshok  <toshok@ximian.com>
970
971         * WebConfigurationManager.cs: lots of little changes.  hopefully
972         this doesn't break anyone.  it fixes all the nunit problems
973         gonzalo was having.
974
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.
979
980 2006-01-29  Chris Toshok  <toshok@ximian.com>
981
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.
987
988 2006-01-26  Chris Toshok  <toshok@ximian.com>
989
990         * HttpConfigurationSystem.cs: new class that gets sections from
991         web.config files.
992
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.
1002
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.
1006
1007 2006-01-25  Chris Toshok  <toshok@ximian.com>
1008
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.
1012
1013 2006-01-25  Chris Toshok  <toshok@ximian.com>
1014
1015         * AuthorizationRule.cs (CheckUser): handle * and ?, and use
1016         String.Compare instead of ==.
1017         (CheckVerb): use String.Compare instead of ==.
1018
1019         * AuthorizationSection.cs (IsValidUser): return false for a null
1020         user.
1021
1022 2006-01-22  Chris Toshok  <toshok@ximian.com>
1023
1024         * GlobalizationSection.cs (VerifyData): quiet mcs.
1025
1026 2006-01-18  Chris Toshok  <toshok@ximian.com>
1027
1028         * SystemWebSectionGroup.cs: wrap System.Web.Services references in
1029         WEBSERVICES_DEP.
1030
1031 2006-01-16  Chris Toshok  <toshok@ximian.com>
1032
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.
1041
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?
1046
1047 2006-01-10  Chris Toshok  <toshok@ximian.com>
1048
1049         * SystemWebSectionGroup.cs (HostingEnvironment): enable this property.
1050         (ProcessModel): add the ConfigurationPropertyAttribute.
1051
1052 2006-01-10  Chris Toshok  <toshok@ximian.com>
1053
1054         * PagesSection.cs (.cctor): fix the default value for the
1055         enableSessionState attribute - it's not a bool, but a
1056         PagesEnableSessionState enum.
1057
1058 2006-01-10  Chris Toshok  <toshok@ximian.com>
1059
1060         * MachineKeySection.cs (ValidationKeyBytes, DecryptionKeyBytes,
1061         DecryptionKey192Bits): if the keys are null, generate them.  Fixes
1062         Page.EnableViewStateMac support.
1063
1064 2006-01-09  Chris Toshok  <toshok@ximian.com>
1065
1066         * RoleManagerSection.cs, SqlCacheDepencendySection.cs,
1067         SessionStateSection.cs, TraceSection.cs, SecurityPolicySection.cs,
1068         PagesSection.cs, RulesSettings.cs, UrlMappingSection.cs: fix
1069         dumper output.
1070
1071 2006-01-09  Chris Toshok  <toshok@ximian.com>
1072
1073         * ExpressionBuilderCollection.cs (.cctor): no need to create a
1074         collection property here.  we're already in the collection.
1075
1076         * CompilationSection.cs: fix typo.
1077
1078 2006-01-04  Chris Toshok  <toshok@ximian.com>
1079
1080         * MachineKeySection.cs: bring over some more internal methods from
1081         MachineKeyConfig, and call Set{Decryption,Validation}Key from
1082         their respective property setters.
1083
1084 2006-01-03  Chris Toshok  <toshok@ximian.com>
1085
1086         * AuthorizationSection.cs (IsValidUser): add analogous method from
1087         AuthorizationConfig.cs.
1088
1089         * AuthorizationRule.cs: add predicates for Verb, User, and Role
1090         analogous to what existed in AuthorizationConfig.cs.
1091
1092 2005-12-11  Chris Toshok  <toshok@ximian.com>
1093
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.
1101
1102 2005-12-06  Chris Toshok  <toshok@ximian.com>
1103
1104         * CodeSubDirectory.cs (DirectoryName): don't use an private field,
1105         but base[directoyNameProp].
1106
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.
1113
1114         * ProfileGroupSettings.cs (GetHashCode): implement.
1115
1116         * GlobalizationSection.cs (GetEncoding): for the utf-8 case, just
1117         use Encoding.UTF8.
1118
1119         * AssemblyCollection.cs (Add): use BaseAdd (info, false) so we can
1120         insert duplicates.
1121
1122         * CacheSection.cs (.cctor): make privateByteLimit's default 0L so
1123         we don't get a invalid cast exception later on.
1124
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.
1129
1130 2005-12-05  Chris Toshok  <toshok@ximian.com>
1131
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.
1136
1137 2005-12-04  Chris Toshok  <toshok@ximian.com>
1138
1139         * UrlMapping.cs: add an internal argument-less ctor.
1140
1141         * UrlMappingCollection.cs (CreateNewElement): use argument-less
1142         ctor.
1143         (GetKey): implement.
1144         (AllKeys): implement.
1145
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.
1156
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.
1164
1165         * RuleSettings.cs: add internal argument-less ctor.
1166
1167         * RuleSettingsCollection.cs (Contains): implement.
1168         (CreateNewElement): use argument-less ctor.
1169         (IndexOf): implement.
1170         (Insert): implement.
1171
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.
1176
1177         * ProfileSettings.cs: add internal argument-less ctor.
1178
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.
1189
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.
1198
1199         * OutputCacheProfileCollection.cs (CreateNewElement): use
1200         parameter-less ctor.
1201         (Set): implement.
1202         (AllKeys): implement.
1203
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.
1210
1211         * FormsAuthenticationUserCollection.cs (Set): implement.
1212         (AllKeys): implement.
1213
1214         * EventMappingSettings.cs: add an internal argument-less ctor.
1215
1216         * EventMappingSettingsCollection.cs (Contains): implement.
1217         (CreateNewElement): use argument-less ctor.
1218         (IndexOf): implement.
1219         (Insert): implement.
1220
1221         * CompilerCollection.cs (GetKey): implement.
1222         (AllKeys): implement.
1223
1224         * ClientTargetCollection.cs (GetKey): implement.
1225         (AllKeys): implement.
1226
1227         * AuthorizationRuleCollection.cs (Set): implement.
1228         (ElementName): add some text to the MonoTODO.
1229         (set_Item (int index)): use Set.
1230
1231 2005-12-04  Chris Toshok  <toshok@ximian.com>
1232
1233         * CustomError.cs: add an internal argument-less ctor for use by
1234         the collection.
1235
1236         * CustomErrorCollection.cs: implement all the MonoTODO's.
1237
1238 2005-12-02  Chris Toshok  <toshok@ximian.com>
1239
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>
1246
1247         * GlobalizationSection.cs (PreSerialize): add checks for Culture
1248         and UICulture properties.
1249
1250 2005-12-01  Chris Toshok  <toshok@ximian.com>
1251
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.
1260
1261 2005-11-30  Chris Toshok  <toshok@ximian.com>
1262
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.
1268
1269 2005-11-28  Chris Toshok  <toshok@ximian.com>
1270
1271         * SessionStateSection.cs (CookieLess): correct the compat function
1272         implementation.
1273
1274 2005-11-28  Chris Toshok  <toshok@ximian.com>
1275
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.
1279
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.
1284
1285 2005-11-28  Chris Toshok  <toshok@ximian.com>
1286
1287         * PagesSection.cs (GetInstance): nuke.
1288
1289         * CompilationSection.cs (GetInstance): nuke.
1290
1291 2005-11-28  Chris Toshok  <toshok@ximian.com>
1292
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.
1300
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.
1305
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.
1309
1310 2005-11-28  Chris Toshok  <toshok@ximian.com>
1311
1312         * HttpModuleActionCollection.cs (CreateNewElement): use the new
1313         HttpModuleAction ctor.
1314
1315         * HttpModuleAction.cs: add internal ctor with no parameters, for
1316         use in HttpModuleActionCollection.
1317
1318 2005-11-28  Chris Toshok  <toshok@ximian.com>
1319
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.
1326
1327 2005-11-26  Chris Toshok  <toshok@ximian.com>
1328
1329         * AuthorizationRuleCollection.cs (GetElementKey): implement this.
1330
1331         * ProfilePropertyNameValidator.cs: make this internal, and add a
1332         blurb about how MS doesn't do the testing you'd expect them to.
1333
1334 2005-11-25  Chris Toshok  <toshok@ximian.com>
1335
1336         * AuthorizationRuleCollection.cs (CreateNewElement): remove
1337         MonoTODO.
1338
1339         * CompilationSection.cs (GetRuntimeObject): add comment to TODO.
1340
1341         * ProfileGroupSettings.cs: reformat some things.
1342
1343         * FormsAuthenticationUser.cs (Name): remove MonoTODO.
1344
1345         * WebPartsSection.cs (GetRuntimeObject): change TODO comment.
1346
1347         * ProfilePropertySettings.cs: add internal argument-less ctor.
1348
1349         * IdentitySection.cs (GetRuntimeObject): return this.
1350
1351         * ProfilePropertySettingsCollection.cs: implement much of the
1352         TODO's.
1353         
1354         * WebControlsSection.cs (GetRuntimeObject): implement.
1355
1356         * SqlCacheDependencyDatabaseCollection.cs (GetElementKey):
1357         implement.
1358         (GetKey): implement.
1359
1360 2005-11-24  Chris Toshok  <toshok@ximian.com>
1361
1362         * AssemblyInfo.cs: move this here from System.Web.Configuration,
1363         and fix up the properties.
1364
1365         * SystemWebSectionGroup.cs: enable most of the sections (2
1366         remaining to be enabled.)
1367
1368 2005-11-24  Chris Toshok  <toshok@ximian.com>
1369
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>
1380
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.
1419
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.
1432
1433         * NamespaceCollection.cs (..cctor): fix properties.
1434
1435         * ProfilePropertySettingsCollection.cs (..cctor): init properties.
1436         (..ctor): don't throw NIE.
1437         (Properties): return properties.
1438
1439         * HttpModuleActionCollection.cs (..cctor): init properties.
1440         (Properties): return properties.
1441
1442         * CacheSection.cs (..cctor): fix validators/converters.
1443         (PrivateBytesPollTime): add note about missing validator
1444         decoration.
1445
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).
1457
1458 2005-11-23  Chris Toshok  <toshok@ximian.com>
1459
1460         * MachineKeyValidationConverter.cs: new converter (and a pretty
1461         silly one, considering all it seems to do is convert "TripleDES"
1462         to "3DES").
1463
1464         * HostingEnvironmentSection.cs (.cctor): use
1465         PositiveTimeSpanValidator like MS does.
1466
1467 2005-11-18  Chris Toshok  <toshok@ximian.com>
1468
1469         * HostingEnvironmentSection.cs (.cctor): add validators.
1470
1471         * CompilationSection.cs (.cctor): fix defaultvalue of
1472         urlLinePragmas.
1473
1474 2005-11-18  Chris Toshok  <toshok@ximian.com>
1475
1476         * SystemWebSectionGroup.cs: enable a whole slew of properties.
1477
1478         * RegexWorker.cs: stub this out.
1479
1480         * HttpCapabilitiesBase.cs: remove GetClrVersions since it's in one
1481         of the other partial files.
1482
1483         * CompilationSection.cs: fix this up.
1484
1485         * PagesSection.cs: fix some types and add a comment to
1486         DeserializeSection.
1487
1488         * CompilerCollection.cs (Add): new internal method.
1489
1490         * ProvidersHelper.cs: put the using System.Configuration.Provider
1491         inside the NET_2_0 block.
1492
1493         * CacheSection.cs: add validators.
1494
1495 2005-11-14  Chris Toshok  <toshok@ximian.com>
1496
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.
1502
1503         * Compiler.cs: wrap the code i hacked from the 1.1 stuff with a
1504         #region.
1505
1506         * BuildProviderCollection.cs (CreateNewElement): use the internal
1507         BuildProvider ctor to get around validation.
1508
1509         * AssemblyCollection.cs: same.
1510
1511 2005-11-14  Chris Toshok  <toshok@ximian.com>
1512
1513         * TagPrefixCollection.cs (Remove): pass the key to BaseRemove.
1514         (set_Item (int index)): implement.
1515         
1516         * TagPrefixInfo.cs (Equals): implement.
1517         (GetHashCode): implement.
1518
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.
1527
1528         * UrlMappingCollection.cs (set_Item (int index)): implement.
1529
1530         * OutputCacheProfileCollection.cs (set_Item (int index)): implement.
1531
1532         * TransformerInfo.cs (Equals): implement.
1533         (GetHashCode): implement.
1534
1535         * NamespaceInfo.cs (Equals): implement.
1536         (GetHashCode): implement.
1537         
1538         * ProfileSettingsCollection.cs (set_Item (int index)): implement.
1539
1540         * TransformerInfoCollection.cs (set_Item (int index)): implement.
1541
1542         * HttpHandlerActionCollection.cs (set_Item (int index)): implement.
1543
1544         * BufferModesCollection.cs (set_Item (int index)): implement.
1545
1546         * BuildProvider.cs: use the base[fooProp] pattern instead of
1547         instance fields.
1548
1549         * ProfileGroupSettingsCollection.cs: implement most of this class.
1550
1551         * RuleSettingsCollection.cs (set_Item (int index)): implement.
1552
1553         * ClientTargetCollection.cs (set_Item (int index)): implement.
1554
1555         * AssemblyCollection.cs (set_Item (int index)): implement.
1556
1557         * BuildProviderCollection.cs (set_Item (int index)): reformat.
1558
1559         * CustomError.cs (Equals): implement.
1560         (GetHashCode): implement.
1561
1562         * ExpressionBuilderCollection.cs (set_Item (int index)): reformat.
1563
1564         * PassportAuthentication.cs (RedirectUrl): express consternation
1565         in comment form.
1566
1567         * NamespaceCollection.cs (set_Item (int index)): implement.
1568
1569         * RootProfilePropertySettingsCollection.cs (SerializeElement): add
1570         comment.
1571
1572         * ProfilePropertySettingsCollection.cs (set_Item (int index)):
1573         implement.
1574
1575         * CustomErrorCollection.cs (set_Item (int index)): implement.
1576
1577         * HttpModuleActionCollection.cs (set_Item (int index)): implement.
1578
1579         * CodeSubDirectoriesCollection.cs (set_Item (int index)):
1580         implement.
1581
1582         * CustomErrorsSection.cs (DeserializeSection): include call to
1583         base.DeserializeSection, and add MonoTODO.
1584
1585         * EventMappingSettingsCollection.cs (set_Item (int index)):
1586         implement.
1587
1588         * AuthorizationRule.cs (Equals): implement.
1589         (GetHashCode): implement.
1590         (SerializeElement): add comment.
1591
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.
1598
1599         * TrustLevelCollection.cs (Remove): pass the key to BaseRemove.
1600         (GetElementKey): implement.
1601
1602         * SqlCacheDependencyDatabase.cs (set_Item (int index)): implement.
1603
1604         * WebContext.cs: new implementation.
1605
1606 2005-11-13  Chris Toshok  <toshok@ximian.com>
1607
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).
1612
1613 2005-11-13  Chris Toshok  <toshok@ximian.com>
1614
1615         * AuthorizationRuleCollection.cs: fix ConfigurationCollection
1616         attribute.
1617
1618         * TransformerInfo.cs: fix corcompare.
1619
1620         * SqlCacheDependencyDatabase.cs: mark ctor internal to fix
1621         corcompare.
1622
1623         * AuthenticationSection.cs: add missing Reset stub.
1624
1625         * ProfileSettingsCollection.cs: use the more succint ctor.
1626
1627         * FormsAuthenticationUser.cs: enable the TypeConverter on "name".
1628
1629         * GlobalizationSection.cs: fix up corcompare.
1630
1631         * WebPartsSection.cs: fix up corcompare.
1632
1633         * ProfileGroupSettingsCollection.cs: add missing
1634         ConfigurationCollection attribute.
1635
1636         * ExpressionBuilder.cs: implement.
1637
1638         * FormsAuthenticationCredentials.cs: fix up corcompare.
1639
1640         * AssemblyCollection.cs: implement Properties.
1641
1642         * SiteMapSection.cs: implement Properties.
1643
1644         * ExpressionBuilderCollection.cs: fix up corcompare.
1645
1646         * ProfileSettings.cs: add missing ctor.
1647
1648         * PassportAuthentication.cs: new implementation.
1649
1650         * SqlCacheDependencySection.cs: fix up corcompare.
1651
1652         * ProfilePropertySettingsCollection.cs: fix up corcompare.
1653
1654         * HttpModuleActionCollection.cs: fix up corcompare.
1655
1656         * EventMappingSettingsCollection.cs: fix up corcompare.
1657
1658         * AuthorizationRule.cs: fix up corcompare.
1659
1660         * WebControlsSection.cs: fix up corcompare.
1661
1662         * AuthorizationSection.cs: fix up corcompare.
1663
1664         * MembershipSection.cs: clean this up, implement Properties, fix
1665         up corcompare, etc.
1666
1667 2005-11-13  Chris Toshok  <toshok@ximian.com>
1668
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.
1680
1681
1682 2005-11-12  Chris Toshok  <toshok@ximian.com>
1683
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.
1702
1703
1704 2005-11-09  Chris Toshok  <toshok@ximian.com>
1705
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.
1713
1714         * TagMap*.cs, TagPrefix*.cs: new implementation.
1715
1716         * FormsAuthentication*.cs: new implementation.
1717
1718         * Profile*.cs: new implementation.
1719
1720         * Namespace*.cs: new implementation.
1721
1722         * HttpRuntimeSection.cs: new implementation.
1723