Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Hosting / SimpleApplicationHost.cs / 2 / 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 (VSWhidbey 418125)
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);
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TrackingStringDictionary.cs
- ProfilePropertyNameValidator.cs
- DeferredElementTreeState.cs
- SignedInfo.cs
- AddInEnvironment.cs
- AssemblyInfo.cs
- HostingEnvironment.cs
- HttpDateParse.cs
- DeclarationUpdate.cs
- FreezableOperations.cs
- PipelineComponent.cs
- HandleValueEditor.cs
- _CommandStream.cs
- IPAddressCollection.cs
- TemplatePropertyEntry.cs
- OleDbEnumerator.cs
- MulticastDelegate.cs
- ZipArchive.cs
- tibetanshape.cs
- AmbientProperties.cs
- ScaleTransform3D.cs
- DialogResultConverter.cs
- ToolboxDataAttribute.cs
- SinglePageViewer.cs
- ModelChangedEventArgsImpl.cs
- DataGridViewBindingCompleteEventArgs.cs
- WebUtil.cs
- ButtonBase.cs
- PreparingEnlistment.cs
- BamlMapTable.cs
- DeviceContext.cs
- MimeMultiPart.cs
- PanelDesigner.cs
- BaseDataListPage.cs
- TextEndOfLine.cs
- RequestCachePolicyConverter.cs
- ReflectEventDescriptor.cs
- ExtenderProviderService.cs
- CustomWebEventKey.cs
- TaskScheduler.cs
- EmbeddedObject.cs
- DNS.cs
- Point3DAnimationBase.cs
- SplitterEvent.cs
- EncoderFallback.cs
- PublisherMembershipCondition.cs
- CoTaskMemHandle.cs
- UrlAuthFailureHandler.cs
- WebEventTraceProvider.cs
- OdbcTransaction.cs
- RuleInfoComparer.cs
- DecimalAnimationUsingKeyFrames.cs
- ToolStripActionList.cs
- TextBlockAutomationPeer.cs
- MachineKeySection.cs
- SpellCheck.cs
- PathGeometry.cs
- _NestedSingleAsyncResult.cs
- ToolStripItemRenderEventArgs.cs
- PageThemeParser.cs
- ContentPosition.cs
- Certificate.cs
- CngAlgorithm.cs
- InputManager.cs
- ProcessRequestAsyncResult.cs
- SqlBuilder.cs
- HashHelper.cs
- WebControlsSection.cs
- ApplicationServicesHostFactory.cs
- Permission.cs
- LocalIdCollection.cs
- LinqDataSourceStatusEventArgs.cs
- NavigationWindow.cs
- ExtendedTransformFactory.cs
- BamlRecordHelper.cs
- _LazyAsyncResult.cs
- FieldBuilder.cs
- TransportChannelFactory.cs
- ButtonBase.cs
- MdiWindowListItemConverter.cs
- XpsInterleavingPolicy.cs
- ProtectedConfigurationProviderCollection.cs
- InternalPermissions.cs
- Rect.cs
- ReaderWriterLock.cs
- SortFieldComparer.cs
- XmlBindingWorker.cs
- ObjectDataSourceFilteringEventArgs.cs
- Options.cs
- ConfigXmlSignificantWhitespace.cs
- StrongNameIdentityPermission.cs
- ContentPlaceHolderDesigner.cs
- WindowsTab.cs
- EncoderNLS.cs
- ProcessModuleCollection.cs
- CodeAttributeArgumentCollection.cs
- SignatureGenerator.cs
- Set.cs
- SynchronizedPool.cs
- PagedDataSource.cs