Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Hosting / SimpleApplicationHost.cs / 1305376 / 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// 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); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Timer.cs
- DBPropSet.cs
- UserNamePasswordValidationMode.cs
- SessionState.cs
- PiiTraceSource.cs
- GroupItem.cs
- TimelineCollection.cs
- ColumnTypeConverter.cs
- RelationshipType.cs
- DataGridViewCellConverter.cs
- DecoratedNameAttribute.cs
- EntityModelBuildProvider.cs
- DataGridViewCellConverter.cs
- PropertyGroupDescription.cs
- StreamingContext.cs
- PropertyNames.cs
- GroupPartitionExpr.cs
- SafeRegistryHandle.cs
- UnionExpr.cs
- SafeHandles.cs
- MenuItemBinding.cs
- CustomValidator.cs
- CodeCompileUnit.cs
- EntitySetDataBindingList.cs
- PtsHost.cs
- OrderedDictionaryStateHelper.cs
- ShutDownListener.cs
- PrintDialogDesigner.cs
- OdbcEnvironment.cs
- SpStreamWrapper.cs
- TransformCollection.cs
- MsdtcWrapper.cs
- ProviderConnectionPointCollection.cs
- XmlElementList.cs
- PeerChannelListener.cs
- StreamGeometry.cs
- PersonalizationEntry.cs
- InputScopeNameConverter.cs
- OleDbParameterCollection.cs
- HttpHandlerActionCollection.cs
- RemoveStoryboard.cs
- XmlRootAttribute.cs
- SystemDiagnosticsSection.cs
- CommandDevice.cs
- DeclarativeExpressionConditionDeclaration.cs
- XmlWrappingWriter.cs
- NativeMethods.cs
- ManipulationPivot.cs
- GenericIdentity.cs
- RealizedColumnsBlock.cs
- TcpServerChannel.cs
- XmlConvert.cs
- XmlSerializationReader.cs
- ClientFormsIdentity.cs
- TreeViewBindingsEditor.cs
- __FastResourceComparer.cs
- StreamUpgradeBindingElement.cs
- WindowInteropHelper.cs
- Stack.cs
- SaveWorkflowAsyncResult.cs
- SortKey.cs
- XamlFilter.cs
- BehaviorEditorPart.cs
- COM2FontConverter.cs
- ManualResetEvent.cs
- DrawingContextWalker.cs
- MetabaseReader.cs
- LoginName.cs
- RadialGradientBrush.cs
- AtomServiceDocumentSerializer.cs
- InternalSafeNativeMethods.cs
- ListItemConverter.cs
- Imaging.cs
- DetailsViewUpdatedEventArgs.cs
- ZipIOBlockManager.cs
- ServiceReflector.cs
- SqlBooleanMismatchVisitor.cs
- StylusPointPropertyUnit.cs
- QueryExpr.cs
- Condition.cs
- DropDownHolder.cs
- TraceContextRecord.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- LinqDataSourceStatusEventArgs.cs
- CodeNamespaceImportCollection.cs
- URI.cs
- NegotiateStream.cs
- XsltQilFactory.cs
- AppDomainUnloadedException.cs
- IndexedString.cs
- CurrentChangingEventManager.cs
- CodeEventReferenceExpression.cs
- SafeRightsManagementSessionHandle.cs
- FixedSOMImage.cs
- QilLoop.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- QueryExecutionOption.cs
- PolyLineSegment.cs
- DesignerAttribute.cs
- CompressedStack.cs