Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / Hosting / SimpleApplicationHost.cs / 3 / SimpleApplicationHost.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Hosting { using System; using System.Collections; using System.Configuration; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; using System.Security.Permissions; using System.Web; using System.Web.Configuration; using System.Web.UI; using System.Web.Util; using Microsoft.Win32; using Debug = System.Web.Util.Debug; internal class SimpleApplicationHost : MarshalByRefObject, IApplicationHost { private VirtualPath _appVirtualPath; private String _appPhysicalPath; internal SimpleApplicationHost(VirtualPath virtualPath, string physicalPath) { if (String.IsNullOrEmpty(physicalPath)) throw ExceptionUtil.ParameterNullOrEmpty("physicalPath"); // Throw if the physical path is not canonical, to prevent potential // security issues ( if (FileUtil.IsSuspiciousPhysicalPath(physicalPath)) { throw ExceptionUtil.ParameterInvalid(physicalPath); } _appVirtualPath = virtualPath; _appPhysicalPath = StringUtil.StringEndsWith(physicalPath, "\\") ? physicalPath : physicalPath + "\\"; } public override Object InitializeLifetimeService() { return null; // never expire lease } // IApplicationHost implementation public string GetVirtualPath() { return _appVirtualPath.VirtualPathString; } String IApplicationHost.GetPhysicalPath() { return _appPhysicalPath; } IConfigMapPathFactory IApplicationHost.GetConfigMapPathFactory() { return new SimpleConfigMapPathFactory(); } IntPtr IApplicationHost.GetConfigToken() { return IntPtr.Zero; } String IApplicationHost.GetSiteName() { return WebConfigurationHost.DefaultSiteName; } String IApplicationHost.GetSiteID() { return WebConfigurationHost.DefaultSiteID; } public void MessageReceived() { // nothing } } [Serializable()] internal class SimpleConfigMapPathFactory : IConfigMapPathFactory { IConfigMapPath IConfigMapPathFactory.Create(string virtualPath, string physicalPath) { WebConfigurationFileMap webFileMap = new WebConfigurationFileMap(); VirtualPath vpath = VirtualPath.Create(virtualPath); // Application path webFileMap.VirtualDirectories.Add(vpath.VirtualPathStringNoTrailingSlash, new VirtualDirectoryMapping(physicalPath, true)); // Client script file path webFileMap.VirtualDirectories.Add( HttpRuntime.AspClientScriptVirtualPath, new VirtualDirectoryMapping(HttpRuntime.AspClientScriptPhysicalPathInternal, false)); return new UserMapPath(webFileMap); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Hosting { using System; using System.Collections; using System.Configuration; using System.Diagnostics; using System.Globalization; using System.Runtime.InteropServices; using System.Security.Permissions; using System.Web; using System.Web.Configuration; using System.Web.UI; using System.Web.Util; using Microsoft.Win32; using Debug = System.Web.Util.Debug; internal class SimpleApplicationHost : MarshalByRefObject, IApplicationHost { private VirtualPath _appVirtualPath; private String _appPhysicalPath; internal SimpleApplicationHost(VirtualPath virtualPath, string physicalPath) { if (String.IsNullOrEmpty(physicalPath)) throw ExceptionUtil.ParameterNullOrEmpty("physicalPath"); // Throw if the physical path is not canonical, to prevent potential // security issues ( if (FileUtil.IsSuspiciousPhysicalPath(physicalPath)) { throw ExceptionUtil.ParameterInvalid(physicalPath); } _appVirtualPath = virtualPath; _appPhysicalPath = StringUtil.StringEndsWith(physicalPath, "\\") ? physicalPath : physicalPath + "\\"; } public override Object InitializeLifetimeService() { return null; // never expire lease } // IApplicationHost implementation public string GetVirtualPath() { return _appVirtualPath.VirtualPathString; } String IApplicationHost.GetPhysicalPath() { return _appPhysicalPath; } IConfigMapPathFactory IApplicationHost.GetConfigMapPathFactory() { return new SimpleConfigMapPathFactory(); } IntPtr IApplicationHost.GetConfigToken() { return IntPtr.Zero; } String IApplicationHost.GetSiteName() { return WebConfigurationHost.DefaultSiteName; } String IApplicationHost.GetSiteID() { return WebConfigurationHost.DefaultSiteID; } public void MessageReceived() { // nothing } } [Serializable()] internal class SimpleConfigMapPathFactory : IConfigMapPathFactory { IConfigMapPath IConfigMapPathFactory.Create(string virtualPath, string physicalPath) { WebConfigurationFileMap webFileMap = new WebConfigurationFileMap(); VirtualPath vpath = VirtualPath.Create(virtualPath); // Application path webFileMap.VirtualDirectories.Add(vpath.VirtualPathStringNoTrailingSlash, new VirtualDirectoryMapping(physicalPath, true)); // Client script file path webFileMap.VirtualDirectories.Add( HttpRuntime.AspClientScriptVirtualPath, new VirtualDirectoryMapping(HttpRuntime.AspClientScriptPhysicalPathInternal, false)); return new UserMapPath(webFileMap); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlTransaction.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- DataTableReaderListener.cs
- BuildResultCache.cs
- XmlException.cs
- AutomationInteropProvider.cs
- ObjectDataSourceView.cs
- Resources.Designer.cs
- ApplicationTrust.cs
- WindowsTooltip.cs
- WebCategoryAttribute.cs
- OdbcStatementHandle.cs
- VectorConverter.cs
- TransformBlockRequest.cs
- UnknownWrapper.cs
- WindowsListViewItem.cs
- EventRoute.cs
- TextSerializer.cs
- QilFactory.cs
- ParameterToken.cs
- UserNameSecurityTokenProvider.cs
- GeneratedView.cs
- RegularExpressionValidator.cs
- MarkupCompilePass2.cs
- TextChange.cs
- PageContentAsyncResult.cs
- DocumentViewerBase.cs
- StylusPointPropertyInfo.cs
- BamlLocalizabilityResolver.cs
- HttpRawResponse.cs
- MonthCalendar.cs
- CodeBinaryOperatorExpression.cs
- IArgumentProvider.cs
- SerializationHelper.cs
- x509store.cs
- FragmentQueryKB.cs
- TranslateTransform3D.cs
- ContextMarshalException.cs
- ApplicationHost.cs
- SapiGrammar.cs
- linebase.cs
- Int64Animation.cs
- DataGridAddNewRow.cs
- XmlnsDefinitionAttribute.cs
- ThicknessAnimationBase.cs
- Completion.cs
- GraphicsContext.cs
- XAMLParseException.cs
- LineProperties.cs
- Int32AnimationUsingKeyFrames.cs
- ErrorHandler.cs
- FullTextBreakpoint.cs
- CodeTypeDelegate.cs
- NominalTypeEliminator.cs
- PackageDigitalSignature.cs
- GridViewCommandEventArgs.cs
- SchemaElementDecl.cs
- ControlPropertyNameConverter.cs
- MaskDescriptors.cs
- DisplayNameAttribute.cs
- configsystem.cs
- Translator.cs
- complextypematerializer.cs
- ServiceControllerDesigner.cs
- VectorCollectionValueSerializer.cs
- HwndSourceKeyboardInputSite.cs
- ProfileService.cs
- FormsAuthenticationUser.cs
- ImageUrlEditor.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- PanelDesigner.cs
- LayoutEditorPart.cs
- OptimalTextSource.cs
- HtmlEmptyTagControlBuilder.cs
- Console.cs
- CompositeDataBoundControl.cs
- TextEndOfParagraph.cs
- ConfigurationStrings.cs
- DataGridViewImageCell.cs
- XmlDataSource.cs
- RequestCache.cs
- JpegBitmapEncoder.cs
- XamlStyleSerializer.cs
- PropertyBuilder.cs
- DataGridViewBindingCompleteEventArgs.cs
- AlignmentYValidation.cs
- SessionSwitchEventArgs.cs
- XmlSecureResolver.cs
- TableLayout.cs
- UInt16Storage.cs
- CheckBoxField.cs
- UriExt.cs
- ReferencedCollectionType.cs
- SmtpSection.cs
- TargetFrameworkAttribute.cs
- PathFigureCollection.cs
- MILUtilities.cs
- DataGridHelper.cs
- CollectionBuilder.cs
- HttpCapabilitiesBase.cs