2006-01-29 Chris Toshok * HttpModulesSection.cs (LoadModules): I'm not sure we want to solve this problem in this way, but the 1.x code forces DefaultAuthenticationModule to be in the list of modules.. Without this fix (or something else) HttpContext.User is null when it shouldn't be. 2006-01-26 Chris Toshok * HttpConfigurationSystem.cs: new class that gets sections from web.config files. * WebConfigurationManager.cs: change a lot of the NotImplementedExceptions to NotSupportedExceptions. (AppSettings): implement by just returning ConfigurationManager.AppSettings (note this is broken because ConfigurationManager.AppSettings are read-only, but it works for reading.) (ConnectionStrings): same (and probably broken in the same way..) (Init): replace the 2.0 IInternalConfigSystem with our HttpConfigurationSystem. * WebConfigurationHost.cs: add a comment about how things are likely to work in the face of IRemoteWebConfigurationHostServer. (CreateConfigurationContext): return a WebContext instance. 2006-01-25 Chris Toshok * AuthorizationSection.cs (IsValidUser): instead of a blanket false for a null user, just set the username to "" and short circuit out the check for roles. 2006-01-25 Chris Toshok * AuthorizationRule.cs (CheckUser): handle * and ?, and use String.Compare instead of ==. (CheckVerb): use String.Compare instead of ==. * AuthorizationSection.cs (IsValidUser): return false for a null user. 2006-01-22 Chris Toshok * GlobalizationSection.cs (VerifyData): quiet mcs. 2006-01-18 Chris Toshok * SystemWebSectionGroup.cs: wrap System.Web.Services references in WEBSERVICES_DEP. 2006-01-16 Chris Toshok * WebConfigurationManager.cs: implement a IConfigurationSystem for use with WebConfigurationManager. (GetSection): try to load the section using GetWebApplicationSection before calling into ConfigurationManager.GetSection. (GetWebApplicationConfiguration): move common code to here. (GetWebApplicationSection): use GetWebApplicationConfiguration. (AppSettings): implement. * WebConfigurationHost.cs (GetWebConfigFileName): add "Web.Config", and move to an array/loop implementation. maybe we should scan the directory and check ToLower() instead of explicitly enumerating? 2006-01-10 Chris Toshok * SystemWebSectionGroup.cs (HostingEnvironment): enable this property. (ProcessModel): add the ConfigurationPropertyAttribute. 2006-01-10 Chris Toshok * PagesSection.cs (.cctor): fix the default value for the enableSessionState attribute - it's not a bool, but a PagesEnableSessionState enum. 2006-01-10 Chris Toshok * MachineKeySection.cs (ValidationKeyBytes, DecryptionKeyBytes, DecryptionKey192Bits): if the keys are null, generate them. Fixes Page.EnableViewStateMac support. 2006-01-09 Chris Toshok * RoleManagerSection.cs, SqlCacheDepencendySection.cs, SessionStateSection.cs, TraceSection.cs, SecurityPolicySection.cs, PagesSection.cs, RulesSettings.cs, UrlMappingSection.cs: fix dumper output. 2006-01-09 Chris Toshok * ExpressionBuilderCollection.cs (.cctor): no need to create a collection property here. we're already in the collection. * CompilationSection.cs: fix typo. 2006-01-04 Chris Toshok * MachineKeySection.cs: bring over some more internal methods from MachineKeyConfig, and call Set{Decryption,Validation}Key from their respective property setters. 2006-01-03 Chris Toshok * AuthorizationSection.cs (IsValidUser): add analogous method from AuthorizationConfig.cs. * AuthorizationRule.cs: add predicates for Verb, User, and Role analogous to what existed in AuthorizationConfig.cs. 2005-12-11 Chris Toshok * WebConfigurationManager.cs (OpenMachineConfiguration): just call ConfigurationManager.OpenMachineConfiguration. (OpenWebConfiguration): remove the "IntPtr userToken" version and add a "string userName" version to clean up corcompare output. Modify all the overloads to pass null instead of IntPtr.Zero. (GetWebApplicationSection): if we're not running in a web application, use the machine configuration. 2005-12-06 Chris Toshok * CodeSubDirectory.cs (DirectoryName): don't use an private field, but base[directoyNameProp]. * AuthorizationRuleCollection.cs (Add): use BaseAdd (rule, false), so we can insert duplicates. (GetKey): nuke. (GetElementKey): MS for some reason just uses the action for the key, ToString()'ed. (Remove): pass the correct key. * ProfileGroupSettings.cs (GetHashCode): implement. * GlobalizationSection.cs (GetEncoding): for the utf-8 case, just use Encoding.UTF8. * AssemblyCollection.cs (Add): use BaseAdd (info, false) so we can insert duplicates. * CacheSection.cs (.cctor): make privateByteLimit's default 0L so we don't get a invalid cast exception later on. * AuthorizationRule.cs (VerifyData): split out the verification foo from PreSerialize. (PostDeserialize): so we can call it from here. (PreSerialize): and here. 2005-12-05 Chris Toshok * AuthorizationRuleCollection.cs (GetKey): split out the logic for creating a key from a rule here. (GetElementKey): use it here. (Remove): and here. 2005-12-04 Chris Toshok * UrlMapping.cs: add an internal argument-less ctor. * UrlMappingCollection.cs (CreateNewElement): use argument-less ctor. (GetKey): implement. (AllKeys): implement. * TrustLevel.cs: add an internal argument-less ctor. * TrustLevelCollection.cs (Set): implement. (CreateNewElement): use argument-less ctor. (IsElementName): implement. (ElementName): implement. (set_Item (int index)): use Set. (ThrowOnDuplicate): implement. * TagPrefixInfo.cs: add internal argument-less ctor. * TagPrefixCollection.cs (CreateNewElement): call argument-less ctor. (CollectionType): add text to TODO. (ElementName): implement. * SqlCacheDependencyDatabaseCollection.cs (Set): implement. (AllKeys): implement. * RuleSettings.cs: add internal argument-less ctor. * RuleSettingsCollection.cs (Contains): implement. (CreateNewElement): use argument-less ctor. (IndexOf): implement. (Insert): implement. * RootProfilePropertySettingsCollection.cs (IsModified): chain up to base.IsModified for now. (Reset): chain up to base.Reset for now. (ResetModified): chain up to base.ResetModified for now. * ProfileSettings.cs: add internal argument-less ctor. * ProfileSettingsCollection.cs (Contains): implement. (CreateNewElement): use argument-less ctor. (IndexOf): implement. (Insert): implement. * ProfilePropertySettingsCollection.cs (IndexOf): implement. (Set): implement. (AllKeys): implement. * ProfileGroupSettings.cs: add internal argument-less ctor. * ProfileGroupSettingsCollection.cs (CreateNewElement): use parameter-less ctor. (GetKey): implement. (ResetModified): for now call base.ResetModified. (Set): implement. (AllKeys): implement. * OutputCacheProfile.cs: add internal argument-less ctor. * OutputCacheProfileCollection.cs (CreateNewElement): use parameter-less ctor. (Set): implement. (AllKeys): implement. * HttpModuleActionCollection.cs (Add): remove MonoTODO. (CreateNewElement): same. * HttpHandlerActionCollection.cs (GetElementKey): build up the key from both the path and the verb. (Remove): same. * FormsAuthenticationUserCollection.cs (Set): implement. (AllKeys): implement. * EventMappingSettings.cs: add an internal argument-less ctor. * EventMappingSettingsCollection.cs (Contains): implement. (CreateNewElement): use argument-less ctor. (IndexOf): implement. (Insert): implement. * CompilerCollection.cs (GetKey): implement. (AllKeys): implement. * ClientTargetCollection.cs (GetKey): implement. (AllKeys): implement. * AuthorizationRuleCollection.cs (Set): implement. (ElementName): add some text to the MonoTODO. (set_Item (int index)): use Set. 2005-12-04 Chris Toshok * CustomError.cs: add an internal argument-less ctor for use by the collection. * CustomErrorCollection.cs: implement all the MonoTODO's. 2005-12-02 Chris Toshok * GlobalizationSection.cs (VerifyData): split out the stuff that used to live in PreSerialize here. (PreSerialize): call VerifyData here. (PostDeserialize): and here. 2005-12-01 Chris Toshok * GlobalizationSection.cs (PreSerialize): add checks for Culture and UICulture properties. 2005-12-01 Chris Toshok * AuthorizationRule.cs (..ctor): provide default values for roles/users/verbs here. Not sure if we should do this in the ctor or if the System.Configuration infrastructure should.. time will tell. (PreSerialize): throw if Roles.Count and Users.Count == 0. (SerializeElement): write out the element here. don't chain up to the base class since that has differing behavior than what we want. 2005-11-30 Chris Toshok * CompilerCollection.cs: ugly hack to fix the 2.0-without-config-2.0 case. wrap this file in #if CONFIGURATION_2_0 as well as #if NET_2_0. * Compiler.cs: same. 2005-11-28 Chris Toshok * SessionStateSection.cs (CookieLess): correct the compat function implementation. 2005-11-28 Chris Toshok * GlobalizationSection.cs (GetEncoding): if the encoding name is null, default to utf-8 before we hit the try block, so we don't throw and generate a spurious warning. * SessionStateSection.cs: The Cookieless handling needs a custom parser, it appears, as the converter is a StringConverter, not a GenericEnumConverter. (ParseCookieMode): the parser. 2005-11-28 Chris Toshok * PagesSection.cs (GetInstance): nuke. * CompilationSection.cs (GetInstance): nuke. 2005-11-28 Chris Toshok * HttpHandlerAction.cs: add some c&p code from the 1.1 config stuff to look for matching handlers. (..ctor): add parameterless ctor. * HttpHandlerActionCollection.cs: clean up formatting. (CreateNewElement): call the parameter-less ctor for HttpHandlerAction. * HttpHandlersSection.cs (..ctor): add a ConfigurationProperty for the default collection. (get_Handlers): implement. (LocateHandler): copy over (and massage) some 1.1 config code. * MachineKeySection.cs: move some code over from the 1.1 config code to deal with autogeneration of keys, as well as converting from the string rep to the byte[] rep. 2005-11-28 Chris Toshok * HttpModuleActionCollection.cs (CreateNewElement): use the new HttpModuleAction ctor. * HttpModuleAction.cs: add internal ctor with no parameters, for use in HttpModuleActionCollection. 2005-11-28 Chris Toshok * GlobalizationSection.cs (..cctor): the encoding ConfigurationProperties are of type "string", even though the properties themselves are of type Encoding. we do conversions manually in the setter/getters. gross. Add code (mostly c&p + massaged from GlobalizationConfigurationHandler) for this and also to handle the culture gettes. 2005-11-26 Chris Toshok * AuthorizationRuleCollection.cs (GetElementKey): implement this. * ProfilePropertyNameValidator.cs: make this internal, and add a blurb about how MS doesn't do the testing you'd expect them to. 2005-11-25 Chris Toshok * AuthorizationRuleCollection.cs (CreateNewElement): remove MonoTODO. * CompilationSection.cs (GetRuntimeObject): add comment to TODO. * ProfileGroupSettings.cs: reformat some things. * FormsAuthenticationUser.cs (Name): remove MonoTODO. * WebPartsSection.cs (GetRuntimeObject): change TODO comment. * ProfilePropertySettings.cs: add internal argument-less ctor. * IdentitySection.cs (GetRuntimeObject): return this. * ProfilePropertySettingsCollection.cs: implement much of the TODO's. * WebControlsSection.cs (GetRuntimeObject): implement. * SqlCacheDependencyDatabaseCollection.cs (GetElementKey): implement. (GetKey): implement. 2005-11-24 Chris Toshok * AssemblyInfo.cs: move this here from System.Web.Configuration, and fix up the properties. * SystemWebSectionGroup.cs: enable most of the sections (2 remaining to be enabled.) 2005-11-24 Chris Toshok * ProcessModelSection.cs, SqlCacheDependencySection.cs, SessionStateSection.cs, PassportAuthentication.cs, FormsAuthenticationConfiguration.cs, SqlCacheDependencyDatabase.cs, HttpModuleAction.cs, BufferModeSettings.cs, TagPrefixInfo.cs (..cctor): init elementProperty. (ValidateElement): new static validator callback. (ElementProperty): enable this, return elementProperty. 2005-11-23 Chris Toshok * ProfilePropertyNameValidator.cs: new implementation. * ProfilePropertySettings.cs, ProfileGroupSettings.cs, ClientTargetSection.cs, ClientTargetSection.cs, BufferModeSettings.cs, HttpModulesSection.cs, WebPartsPersonalization.cs, TransformerInfo.cs, TrustLevel.cs, NamespaceInfo.cs, SqlCacheDependencyDatabase.cs, AuthenticationSection.cs, RuleSettings.cs, FormsAuthenticationUser.cs, WebPartsSection.cs, BuildProvider.cs, WebPartsPersonalizationAuthorization.cs, Compiler.cs, ExpressionBuilder.cs, OutputCacheProfile.cs, FormsAuthenticationCredentials.cs, XhtmlConformanceSection.cs, OutputCacheSettingsSection.cs, CustomError.cs, TraceSection.cs, ExpressionBuilderCollection.cs, ProfileSettings.cs, SessionStateSection.cs, HealthMonitoringSection.cs, FormsAuthenticationConfiguration.cs, HttpRuntimeSection.cs, SessionPageStateSection.cs, TrustSection.cs, AnonymousIdentificationSection.cs, WebControlsSection.cs, ClientTarget.cs, TagMapInfo.cs, AuthorizationSection.cs, ProcessModelSection.cs, RoleManagerSection.cs, MembershipSection.cs, CustomErrorsSection.cs (..cctor): fix validator/converters. * MachineKeySection.cs (..cctor): fix validators/converters. (Validation): enable the Converter. * CodeSubDirectory.cs (..cctor): fix validator/converters. (DirectoryName): add note about missing validator decoration. * HttpModuleAction.cs (..cctor): init properties. (Properties): return properties. * CompilationSection.cs (..cctor): fix validator/converters. (GetInstance): add in this pre-2.0 interface for the time being, hopefully it'll make it easier to migrate later on. * HttpHandlerActionCollection.cs (..cctor): init properties. (Properties): return properties. * PagesSection.cs (..cctor): fix validator/converters. (GetInstance): add in this pre-2.0 interface for the time being, hopefully it'll make it easier to migrate later on. * HttpHandlersSection.cs (..cctor): init properties. (Properties): return properties. * EventMappingSettings.cs (..cctor): fix validator/converters. (Name): add note about missing validator decoration. * HttpHandlerAction.cs (..cctor): fix validator/converters. (PAth, Type, Verb): add note about missing validator decoration. * NamespaceCollection.cs (..cctor): fix properties. * ProfilePropertySettingsCollection.cs (..cctor): init properties. (..ctor): don't throw NIE. (Properties): return properties. * HttpModuleActionCollection.cs (..cctor): init properties. (Properties): return properties. * CacheSection.cs (..cctor): fix validators/converters. (PrivateBytesPollTime): add note about missing validator decoration. * AuthorizationRule.cs (..cctor): fix validators/converters. (Roles, Users, Verbs): enable the TypeConverter decorations. * UrlMapping.cs (ValidateUrl): static method for use as a validation callback. unimplemented as yet. (..cctor): fix validators/converters. (MappedUrl): add note about missing validator decoration. * PropertyHelper.cs: static utility class which contains references to validators and converters for use in static constructors (building the Properties arrays). 2005-11-23 Chris Toshok * MachineKeyValidationConverter.cs: new converter (and a pretty silly one, considering all it seems to do is convert "TripleDES" to "3DES"). * HostingEnvironmentSection.cs (.cctor): use PositiveTimeSpanValidator like MS does. 2005-11-18 Chris Toshok * HostingEnvironmentSection.cs (.cctor): add validators. * CompilationSection.cs (.cctor): fix defaultvalue of urlLinePragmas. 2005-11-18 Chris Toshok * SystemWebSectionGroup.cs: enable a whole slew of properties. * RegexWorker.cs: stub this out. * HttpCapabilitiesBase.cs: remove GetClrVersions since it's in one of the other partial files. * CompilationSection.cs: fix this up. * PagesSection.cs: fix some types and add a comment to DeserializeSection. * CompilerCollection.cs (Add): new internal method. * ProvidersHelper.cs: put the using System.Configuration.Provider inside the NET_2_0 block. * CacheSection.cs: add validators. 2005-11-14 Chris Toshok * BufferModeSettings.cs: add validators/converters to the programmatic property list. * BuildProvider.cs: add validators/converters to the programmatic property list, and add an internal ctor with no args. * Compiler.cs: wrap the code i hacked from the 1.1 stuff with a #region. * BuildProviderCollection.cs (CreateNewElement): use the internal BuildProvider ctor to get around validation. * AssemblyCollection.cs: same. 2005-11-14 Chris Toshok * TagPrefixCollection.cs (Remove): pass the key to BaseRemove. (set_Item (int index)): implement. * TagPrefixInfo.cs (Equals): implement. (GetHashCode): implement. * AuthorizationRuleCollection.cs (CreateNewElement(string)): implement propertly. (IndexOf): implement. (IsElementName): implement. (ElementName): implement. (Item (int index)): implement. * FormsAuthenticationUserCollection.cs (set_Item (int index)): implement. * UrlMappingCollection.cs (set_Item (int index)): implement. * OutputCacheProfileCollection.cs (set_Item (int index)): implement. * TransformerInfo.cs (Equals): implement. (GetHashCode): implement. * NamespaceInfo.cs (Equals): implement. (GetHashCode): implement. * ProfileSettingsCollection.cs (set_Item (int index)): implement. * TransformerInfoCollection.cs (set_Item (int index)): implement. * HttpHandlerActionCollection.cs (set_Item (int index)): implement. * BufferModesCollection.cs (set_Item (int index)): implement. * BuildProvider.cs: use the base[fooProp] pattern instead of instance fields. * ProfileGroupSettingsCollection.cs: implement most of this class. * RuleSettingsCollection.cs (set_Item (int index)): implement. * ClientTargetCollection.cs (set_Item (int index)): implement. * AssemblyCollection.cs (set_Item (int index)): implement. * BuildProviderCollection.cs (set_Item (int index)): reformat. * CustomError.cs (Equals): implement. (GetHashCode): implement. * ExpressionBuilderCollection.cs (set_Item (int index)): reformat. * PassportAuthentication.cs (RedirectUrl): express consternation in comment form. * NamespaceCollection.cs (set_Item (int index)): implement. * RootProfilePropertySettingsCollection.cs (SerializeElement): add comment. * ProfilePropertySettingsCollection.cs (set_Item (int index)): implement. * CustomErrorCollection.cs (set_Item (int index)): implement. * HttpModuleActionCollection.cs (set_Item (int index)): implement. * CodeSubDirectoriesCollection.cs (set_Item (int index)): implement. * CustomErrorsSection.cs (DeserializeSection): include call to base.DeserializeSection, and add MonoTODO. * EventMappingSettingsCollection.cs (set_Item (int index)): implement. * AuthorizationRule.cs (Equals): implement. (GetHashCode): implement. (SerializeElement): add comment. * TagMapCollection.cs (Remove): pass the key to BaseRemove. (set_Item (int index)): implement. * TagMapInfo.cs (Equals): implement. (GetHashCode): implement. (SerializeElement): add call to base.SerializeElement. * TrustLevelCollection.cs (Remove): pass the key to BaseRemove. (GetElementKey): implement. * SqlCacheDependencyDatabase.cs (set_Item (int index)): implement. * WebContext.cs: new implementation. 2005-11-13 Chris Toshok * AnonymousIdentificationSection.cs: rework this class a bit to fit in with the rest of S.W.C. Add validators to the ConfigurationProperty ctor calls, a pattern which will need to be replicated across the entire assembly, it appears (uggggh). 2005-11-13 Chris Toshok * AuthorizationRuleCollection.cs: fix ConfigurationCollection attribute. * TransformerInfo.cs: fix corcompare. * SqlCacheDependencyDatabase.cs: mark ctor internal to fix corcompare. * AuthenticationSection.cs: add missing Reset stub. * ProfileSettingsCollection.cs: use the more succint ctor. * FormsAuthenticationUser.cs: enable the TypeConverter on "name". * GlobalizationSection.cs: fix up corcompare. * WebPartsSection.cs: fix up corcompare. * ProfileGroupSettingsCollection.cs: add missing ConfigurationCollection attribute. * ExpressionBuilder.cs: implement. * FormsAuthenticationCredentials.cs: fix up corcompare. * AssemblyCollection.cs: implement Properties. * SiteMapSection.cs: implement Properties. * ExpressionBuilderCollection.cs: fix up corcompare. * ProfileSettings.cs: add missing ctor. * PassportAuthentication.cs: new implementation. * SqlCacheDependencySection.cs: fix up corcompare. * ProfilePropertySettingsCollection.cs: fix up corcompare. * HttpModuleActionCollection.cs: fix up corcompare. * EventMappingSettingsCollection.cs: fix up corcompare. * AuthorizationRule.cs: fix up corcompare. * WebControlsSection.cs: fix up corcompare. * AuthorizationSection.cs: fix up corcompare. * MembershipSection.cs: clean this up, implement Properties, fix up corcompare, etc. 2005-11-13 Chris Toshok * UrlMapping.cs, CustomErrorCollection.cs, CustomError.cs, HostingEnvironmentSection.cs, TrustLevel.cs, HttpCookiesSection.cs, UrlMappingsSection.cs, UrlMappingCollection.cs, LowerCaseStringConverter.cs, RoleManagerSection.cs, ProcessModelSection.cs, TrustLevelCollection.cs, ClientTarget.cs, CustomErrorsSection.cs, MachineKeySection.cs, SessionPageStateSection.cs, SessionStateSection.cs, ProvidersHelper.cs, ClientTargetCollection.cs, SecurityPolicySection.cs, HttpCapabilitiesBase.cs, ClientTargetSection.cs: Another large swath. 2005-11-12 Chris Toshok * AuthorizationRuleCollection.cs, AuthorizationRule.cs, AuthorizationSection.cs, BufferModesCollection.cs, BufferModeSettings.cs, CacheSection.cs, CompilerCollection.cs, Compiler.cs, DeploymentSection.cs, EventMappingSettingsCollection.cs, EventMappingSettings.cs, GlobalizationSection.cs, HealthMonitoringSection.cs, IdentitySection.cs, OutputCacheProfileCollection.cs, OutputCacheProfile.cs, OutputCacheSection.cs, OutputCacheSettingsSection.cs, ProfileSettingsCollection.cs, ProfileSettings.cs, RuleSettingsCollection.cs, RuleSettings.cs, SqlCacheDependencyDatabaseCollection.cs, SqlCacheDependencyDatabase.cs, SqlCacheDependencySection.cs, SystemWebCachingSectionGroup.cs, TraceSection.cs, TransformerInfoCollection.cs, TransformerInfo.cs, TrustSection.cs, WebControlsSection.cs, WebPartsPersonalizationAuthorization.cs, WebPartsPersonalization.cs, WebPartsSection.cs, XhtmlConformanceSection.cs: a whole slew of new classes. the fruits of tons of c&p and ibuprofen. 2005-11-09 Chris Toshok * PagesSection.cs, AuthenticationSection.cs, BuildProvider.cs, BuildProviderCollection.cs, HttpHandlerActionCollection.cs, HttpModulesSection.cs, HttpModuleAction.cs, HttpModuleActionCollection.cs, AnonymousIdentificationSection.cs, CodeSubDirectory.cs, CodeSubDirectoriesCollection.cs, SystemWebSectionGroup.cs, SiteMapSection.cs, WebConfigurationManager.cs: flesh out the implementation. * TagMap*.cs, TagPrefix*.cs: new implementation. * FormsAuthentication*.cs: new implementation. * Profile*.cs: new implementation. * Namespace*.cs: new implementation. * HttpRuntimeSection.cs: new implementation.