You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,94 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="SimpleApplicationHost.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user