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
- ReferenceService.cs
- DispatcherProcessingDisabled.cs
- ImageSourceValueSerializer.cs
- ReflectionPermission.cs
- DropSource.cs
- DockPanel.cs
- TransportReplyChannelAcceptor.cs
- AnimationException.cs
- ContractCodeDomInfo.cs
- PropertyIDSet.cs
- WbemProvider.cs
- ApplicationHost.cs
- AssemblyUtil.cs
- MobileControlPersister.cs
- CodeStatement.cs
- HttpCacheParams.cs
- DispatchChannelSink.cs
- XappLauncher.cs
- EntityCommandExecutionException.cs
- WebServiceMethodData.cs
- ObjectRef.cs
- CheckoutException.cs
- CacheVirtualItemsEvent.cs
- DBBindings.cs
- AliasGenerator.cs
- MaskedTextProvider.cs
- PasswordBoxAutomationPeer.cs
- AttachedPropertyMethodSelector.cs
- DataServiceStreamResponse.cs
- FixedNode.cs
- RoleServiceManager.cs
- StateDesigner.CommentLayoutGlyph.cs
- RotateTransform.cs
- RegexTree.cs
- CodeDelegateInvokeExpression.cs
- SoapSchemaImporter.cs
- PasswordTextContainer.cs
- OpCodes.cs
- DirectionalLight.cs
- storagemappingitemcollection.viewdictionary.cs
- DataSvcMapFile.cs
- TdsParserStaticMethods.cs
- DecimalAnimationUsingKeyFrames.cs
- SqlDataSourceView.cs
- DataGridBoundColumn.cs
- CalendarButton.cs
- ToolStripItemCollection.cs
- Profiler.cs
- ProviderIncompatibleException.cs
- ObjectListField.cs
- XPathParser.cs
- DataServiceEntityAttribute.cs
- DbProviderFactories.cs
- TransformValueSerializer.cs
- SqlDataSource.cs
- WebPartConnectionsConnectVerb.cs
- OlePropertyStructs.cs
- LinqDataSourceSelectEventArgs.cs
- ConnectionPoolManager.cs
- SspiNegotiationTokenProvider.cs
- BigInt.cs
- Binding.cs
- TextDecorationLocationValidation.cs
- BamlBinaryWriter.cs
- BamlMapTable.cs
- AddDataControlFieldDialog.cs
- EnumUnknown.cs
- DataGridViewCellValueEventArgs.cs
- XmlSignatureProperties.cs
- AssociationProvider.cs
- SynchronizationLockException.cs
- basecomparevalidator.cs
- SecurityTokenResolver.cs
- ProcessModelInfo.cs
- NamespaceExpr.cs
- XLinq.cs
- RawKeyboardInputReport.cs
- XmlSchemaSearchPattern.cs
- WindowsGraphics2.cs
- InputLanguageProfileNotifySink.cs
- HostingMessageProperty.cs
- ButtonPopupAdapter.cs
- PolicyLevel.cs
- precedingsibling.cs
- CompositeActivityDesigner.cs
- HttpWebRequestElement.cs
- SmtpException.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- ContainerVisual.cs
- ProcessingInstructionAction.cs
- ContourSegment.cs
- CodeIterationStatement.cs
- ISessionStateStore.cs
- KeyPullup.cs
- SecurityHeaderElementInferenceEngine.cs
- ComNativeDescriptor.cs
- UntrustedRecipientException.cs
- SqlReferenceCollection.cs
- SpeakInfo.cs
- TdsParserSafeHandles.cs