2010-06-02 Marek Habersack * DefaultHttpHandler.cs: implemented, so that static file requests work again in 4.0 2010-06-01 Marek Habersack * HttpUtility.cs: moved chunks of code to the new System.Web.Util.HttpEncoder class. * HttpResponseHeader.cs: encode header names and values using HttpEncoder. * HttpRequest.cs: added internal method Validate, to validate the request in 4.0 profile. * HttpHeaderCollection.cs: added. A helper class to encode header names/values on add. * HttpApplication.cs: Pipeline () validates request by calling HttpRequest.Validate in the 4.0 profile. 2010-05-17 Marek Habersack * HttpApplicationFactory.cs: pre-application start methods must be called even before App_Code is compiled. 2010-05-16 Marek Habersack * HttpApplicationFactory.cs: let BuildManager know when it's safe to cache referenced assemblies. 2010-05-15 Marek Habersack * HttpResponse.cs: added internal Context property * HttpRequest.cs: added a setter to the internal Context property * HttpContext.cs: set request and response Context properties to 'this' in the constructor. 2010-05-12 Marek Habersack * HttpApplicationFactory.cs: when initializing new application type, make sure to call pre-application start methods. * HttpServerUtility.cs: Execute checks whether IAsyncResult.AsyncWaitHandle is not null before attempting to use it. Fixes bug #604502 2010-05-06 Marek Habersack * PreApplicationStartMethodAttribute.cs: added. New 4.0 type. * HttpUtility.cs: HtmlEncode, UrlEncode changes for 4.0 Implemented JavaScriptStringEncode for 4.0 * HttpServerUtility.cs: added TransferRequest methods. * HttpRuntime.cs: added AspClientScriptPhysicalPath, AspClientScriptVirtualPath, UsingIntegratedPipeline properties and the GetNamedPermissionSet method. * HttpResponse.cs: implemented the following 4.0 methods: RedirectPermanent, RedirectToRoute, RedirectToRoutePermanent and RemoveOutputCacheItem. Output property no longer lazily creates a writer object - it's created in the internal constructors. If a user sets it to null, it remains null for good or bad. Added Output setter for 4.0+ 2010-05-05 Marek Habersack * HttpRequest.cs: implemented new 4.0 property - RequestContext 2010-04-29 Marek Habersack * HttpRequest.cs: added 4.0 InsertEntityBody overloads (not supported when running under Mono) Added the HttpChannelBinding 4.0 property. Added the CurrentExecutionFilePathExtension 4.0 property. 2010-04-27 Marek Habersack * HttpException.cs: implemented 4.0 property WebEventCode, also made it available in the 2.0 profile as internal. Added a method with several overloads, NewWithCode, which creates an instance of HttpException and sets the web error code. * HttpApplication.cs, HttpRequest.cs, HttpRuntime.cs: use HttpException.NewWithCode for some exceptions. 2010-04-21 Marek Habersack * HttpApplication.cs: update to fix for bug #572469 - ProcessError clears the error after handler return only if stop_processing is true. Also, stop_processing is never set before calling ProcessError 2010-04-02 Marek Habersack * HttpException.cs: handle situations when current exception is an instance of a class derived from HttpException and there's no InnerException. * HttpApplication.cs: ProcessError must call ClearError on the current context after the handler returns without error. Fixes bug #572469 2010-03-30 Gonzalo Paniagua Javier * HttpResponseStream.cs: speed up short writes. 2010-03-20 Marek Habersack * SiteMapNode.cs: avoid calling ChildNodes twice in HasChildNodes. Cache child nodes in the ChildNodes property. 2010-03-06 Marek Habersack * HttpRequest.cs: cache RawUrl value. Added new internal property, PathNoValidation, which returns request path without validating it. Implemented 4.0 extensible validation. * HttpApplication.cs: Pipeline () validates the request path, if new validation mode is enabled, before doing anything else. Added a generic LoadType overload which checks whether the loaded type, if any, derives from the type specified in the method's specialization. * HttpUtility.cs: decode entities which use hexadecimal encoding. Fixes bug #585992. Patch from Sebastien Morin , thanks! 2010-03-04 Marek Habersack * HttpRuntime.cs: do less work in the static constructor. Most of the code was moved to System.Web.Util.RuntimeHelpers. Properties which have been moved: MonoVersion, RunningOnWindows, CaseInsensitive, IsDebuggingEnabled 2010-02-27 Marek Habersack * HttpRuntime.cs: added internal property DomainUnloading. * HttpApplication.cs: when app domain is unloading, catch ThreadAbortExceptions and reset the abort. 2010-02-03 Marek Habersack * HttpApplication.cs: GetOutputCacheProviderName returns the value of OutputCache.DefaultProviderName * HttpRuntime.cs: internal cache is used to hold the dependencies now. 2010-01-20 Marek Habersack * HttpContext.cs: implemented the 4.0 SetSessionStateBehavior method * HttpCacheVaryByContentEncodings.cs, HttpCacheVaryByHeaders.cs, HttpCacheVaryByParams.cs : parameterless constructors are public in 4.0 * HttpApplication.cs: implemented the 4.0 GetOutputCacheProviderName method 2010-01-19 Marek Habersack * StaticSiteMapProvider.cs: AddNode checks the url of node returned by FindSiteMapNode to see if it indeed was a duplicate. It is necessary if application derives from StaticSiteMapProvider and overrides FindSiteMapNode to return RootNode if rawUrl doesn't match any existing node. Fixes bug #570194 2010-01-09 Marek Habersack * VirtualPathUtility.cs: small optimizations for GetDirectory 2009-11-23 Marek Habersack * HttpRequest.cs: PathInfo returns an empty string when worker request is absent or its GetPathInfo method returns a null. Patch from Tiaan , thanks! 2009-11-19 Marek Habersack * VirtualPathUtility.cs: made Normalize internal 2009-11-16 Marek Habersack * HttpContext.cs: RewritePath now treats non-rooted and app-relative paths correctly - the former are formed by concatenating base virtual path with the passed file path and the latter by calling VirtualPathUtility.ToAbsolute. Rooted and absolute paths are left unmodified. Fixes bug #550103 2009-11-13 Marek Habersack * HttpResponse.cs: added parameter checks to Redirect (). If the passed url starts with http:, https:, file: or ftp: then it is treated as a fully qualified one and no attempt to rewrite the url to the fully qualified form (if system.web/httpRuntime UseFullyQualifiedRedirectUrl is true) is made. 2009-11-09 Marek Habersack * HttpCookie.cs: made HttpCookie.CookieNVC serializable. Patch from Sean Foy , thanks! Fixes bug #553063 * HttpCookieCollection.cs: Add allows for duplicate cookie names. Fixes bug #553150 2009-10-30 Marek Habersack * HttpRequest.cs: added internal property ClientFilePath, which may have a different value than FilePath when virtual path has been rewritten, but the caller specified that the client paths should still be constructed using the original url. * HttpContext.cs: RewritePath always sets Request.FilePath, Request.ClientFilePath is set only when setClientFilePath is true. This makes client urls work correctly when url rewriting is being used. 2009-10-20 Marek Habersack * HttpResponse.cs: implemented the WriteSubstitution method, thus enabling post-cache substitution. 2009-10-12 Marek Habersack * HttpResponse.cs: actually _use_ the url passed to Redirect when fully qualified redirect url is requested, doh. Fixes bug #542846 2009-10-07 Gonzalo Paniagua Javier * StaticFileHandler.cs: it's the last flush even when a VPP is used. 2009-10-07 Marek Habersack * TraceData.cs: make long execution times stand out. 2009-09-29 Miguel de Icaza * HttpUtility.cs: Do not use CAS Attributes when using MonoTouch. Remove unnecesasry using clause. 2009-09-29 Marek Habersack * HttpResponse.cs: use full url in redirect if UseFullyQualifiedRedirectUrl is set to true in httpRuntime configuration section. Patch from Brett Kiefer , thanks! Fixes bug #542846 2009-09-28 Marek Habersack * HttpContext.cs: GetResourceProvider - renamed the 'key' argument to 'virtualPath' in order to reflects its purpose better. Local resource providers are created for the passed virtualPath and not for the current request's path. Fixes bug #542484 2009-09-25 Marek Habersack * StaticSiteMapProvider.cs: MapUrl must normalize paths. Fixes bug #541969 * XmlSiteMapProvider.cs: siteMapFile parameter must be mapped in Initialize. Fixes bug #541969 2009-09-24 Marek Habersack * XmlSiteMapProvider.cs: added "securityTrimmingEnabled" to the list of supported attributes in Initialize. Fixes bug #541607 2009-09-07 Marek Habersack * HttpContext.cs: when creating local resource provider, pass the current file's virtual path to CreateLocalResourceProvider. Fixes bug #536757 * XmlSiteMapProvider.cs: do not allow the provider to be intialized more than once. Initialize throws if it finds unknown attributes in the 'attributes' collection. AddNode checks its arguments and throws if they are null or aren't from the same provider. FindStartingNode throws exceptions in several erroneous situations now. Added private method GetConfigDocument which performs several checks on the source .sitemap file and throws exceptions if it finds any errors. BuildSiteMap clears provider state before building the map. BuildSiteMapRecursive correctly deals with custom providers. Fixes bug #465696 FindSiteMapNode maps url before searching. Fixes bug #465696 * VirtualPathUtility.cs: Combine a bit more efficient * StaticSiteMapProvider.cs: FindSiteMap node checks if rawUrl is relative to application root and if yes, makes it absolute. MapUrl converts both rooted and not rooted urls to absolute. * SiteMapProvider.cs: check if HttpContext.Request exists before using it in FindSiteMapnode * SiteMap.cs: Providers collection must be read-only. 2009-09-04 Marek Habersack * HttpRuntime.cs: retrieve real Mono version from the runtime and store it in the MonoVersion internal static property. * HttpException.cs: report real Mono version when backtrace is displayed. 2009-08-24 Marek Habersack * VirtualPath.cs: Added new constructor which takes virtual and physical paths as well as a boolean marking the instance as referring to a fake location. Part of fix for bug #463813 2009-07-28 Gonzalo Paniagua Javier * HttpApplicationFactory.cs: allow subclasses of EventHandler for event handlers in global.asax. Fixes bug #525743. 2009-07-23 Marek Habersack * HttpException.cs: if an exception is processed which refers to internal "files", don't show the internal name. 2009-07-18 Marek Habersack * HttpContext.cs: GetGlobalResourceObject must look for resources in the 'Resources' "namespace" - it was a regression from the previous change to that method. 2009-07-15 Marek Habersack * HttpApplicationFactory.cs: added internal methods to enable/disable specific watchers. Part of fix for bug #522017 2009-07-14 Gonzalo Paniagua Javier * ApplicationShutdownReason.cs: add new 3.5 value. * ParserErrorCollection.cs: add setter for ParserError. Patch from Daniel Gagne. 2009-07-14 Marek Habersack * HttpApplicationFactory.cs: OnFileChanged doesn't reload application if reload suppression is active. 2009-07-13 Marek Habersack * HttpApplication.cs: LoadType - wrap call to LoadTypeFromBin in try/catch so that we can decide whether or not to throw exceptions. LoadTypeFromBin - ignore the FileLoadException and BadImageException exceptions as they don't matter in this context. 2009-07-13 Gert Driesen * HttpResponseStream.cs: Added argument checks to Write. Modified methods/properties that requires a readable stream to throw NotSupportedException instead of InvalidOperationException for compatibility with MS. 2009-07-09 Gonzalo Paniagua Javier * HttpApplication.cs: use GetSection instead of OpenWebConfiguration+GetSection. 2009-07-09 Marek Habersack * HttpContext.cs: fall back to default resource provider factory if the factory provided by user doesn't have the required object in Get{Global,Local}ResourceObject. Fixes bug #520397 Refactored the GetResourceObject method and the ResourceManagerCacheKey class to DefaultResourceProvider. 2009-07-07 Gonzalo Paniagua Javier * ParserError.cs: add 3 missing setters. Patch from Daniel Gagne. 2009-06-15 Marek Habersack * HttpCachePolicy.cs: SetHeaders adds max-age when MaxAge is set to TimeSpan.Zero by calling SetMaxAge. Fixes bug #513000 2009-06-05 Marek Habersack * VirtualPathUtility.cs: IsValidVirtualPath no longer uses WebConfigurationManager.GetSection to retrieve the verification setting. Instead, the setting is retrieved in the static constructor. * HttpRequest.cs: ApplyUrlMapping must not use WebConfigurationManager.GetSection as it would cause a recursive call loop. Code to detect whether url mappings are in effect has been moved to a static constructor. 2009-06-04 Marek Habersack * HttpResponse.cs: version header configuration is read lazily now. * HttpException.cs: do not show version info if custom errors are in effect. Fixes bug #509092 Don't generate trace for 403. Fixes bug #509092 * HttpApplicationFactory.cs: OnFileChanged ignores the directory part of the file triggering the event. Fixes bug #509998 2009-06-03 Marek Habersack * VirtualPathUtility.cs: IsValidVirtualPath now checks the value of the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\VerificationCompatibility registry key when running on Windows and also consults the mono-specific system.web/monoSettings configuration section to see what is the verificationCompatibility property set to. If either of the two is set to 1, Mono will not verify the validity of the current request's path. Fixes bug #509163 * HttpApplicationFactory.cs: OnFileChanged must check whether the modified location is a directory before it decides to ignore it when watcher's filter is "?eb.?config". Fixes bug #509450 (see also bug #495011) * HttpForbiddenHandler.cs: updated the error message to match .NET, added requested path and description. Fixes bug #509092 * HttpException.cs: if trace is not requested, don't output