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