Merge
This commit is contained in:
commit
e2b7191c98
102 changed files with 2361 additions and 964 deletions
Binary file not shown.
|
@ -323,10 +323,14 @@ namespace WebsitePanel.Setup.Actions
|
||||||
serviceInfo.Comments = string.Empty;
|
serviceInfo.Comments = string.Empty;
|
||||||
|
|
||||||
//check IIS version
|
//check IIS version
|
||||||
if (ServerSetup.IISVersion.Major >= 7)
|
if (ServerSetup.IISVersion.Major == 7)
|
||||||
{
|
{
|
||||||
serviceInfo.ProviderId = 101;
|
serviceInfo.ProviderId = 101;
|
||||||
}
|
}
|
||||||
|
else if (ServerSetup.IISVersion.Major == 8)
|
||||||
|
{
|
||||||
|
serviceInfo.ProviderId = 105;
|
||||||
|
}
|
||||||
else if (ServerSetup.IISVersion.Major == 6)
|
else if (ServerSetup.IISVersion.Major == 6)
|
||||||
{
|
{
|
||||||
serviceInfo.ProviderId = 2;
|
serviceInfo.ProviderId = 2;
|
||||||
|
|
|
@ -31,6 +31,7 @@ using System.Collections.Generic;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
|
using WebsitePanel.Setup.Common;
|
||||||
|
|
||||||
namespace WebsitePanel.Setup.Actions
|
namespace WebsitePanel.Setup.Actions
|
||||||
{
|
{
|
||||||
|
@ -114,6 +115,55 @@ namespace WebsitePanel.Setup.Actions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class GenerateSessionValidationKeyAction : Action, IInstallAction
|
||||||
|
{
|
||||||
|
public const string LogStartInstallMessage = "Generating session validation key...";
|
||||||
|
|
||||||
|
void IInstallAction.Run(SetupVariables vars)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Begin(LogStartInstallMessage);
|
||||||
|
|
||||||
|
Log.WriteStart(LogStartInstallMessage);
|
||||||
|
|
||||||
|
string path = Path.Combine(vars.InstallationFolder, "web.config");
|
||||||
|
|
||||||
|
if (!File.Exists(path))
|
||||||
|
{
|
||||||
|
Log.WriteInfo(string.Format("File {0} not found", path));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.WriteStart("Updating configuration file (session validation key)");
|
||||||
|
XmlDocument doc = new XmlDocument();
|
||||||
|
doc.Load(path);
|
||||||
|
|
||||||
|
XmlElement sessionKey = doc.SelectSingleNode("configuration/appSettings/add[@key='SessionValidationKey']") as XmlElement;
|
||||||
|
if (sessionKey == null)
|
||||||
|
{
|
||||||
|
Log.WriteInfo("SessionValidationKey setting not found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sessionKey.SetAttribute("value", StringUtils.GenerateRandomString(16));
|
||||||
|
doc.Save(path);
|
||||||
|
|
||||||
|
Log.WriteEnd("Generated session validation key");
|
||||||
|
InstallLog.AppendLine("- Generated session validation key");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
if (Utils.IsThreadAbortException(ex))
|
||||||
|
return;
|
||||||
|
//
|
||||||
|
Log.WriteError("Site settigs error", ex);
|
||||||
|
//
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class CreateDesktopShortcutsAction : Action, IInstallAction
|
public class CreateDesktopShortcutsAction : Action, IInstallAction
|
||||||
{
|
{
|
||||||
public const string LogStartInstallMessage = "Creating shortcut...";
|
public const string LogStartInstallMessage = "Creating shortcut...";
|
||||||
|
@ -253,6 +303,7 @@ namespace WebsitePanel.Setup.Actions
|
||||||
new CreateWebSiteAction(),
|
new CreateWebSiteAction(),
|
||||||
new SwitchAppPoolAspNetVersion(),
|
new SwitchAppPoolAspNetVersion(),
|
||||||
new UpdateEnterpriseServerUrlAction(),
|
new UpdateEnterpriseServerUrlAction(),
|
||||||
|
new GenerateSessionValidationKeyAction(),
|
||||||
new SaveComponentConfigSettingsAction(),
|
new SaveComponentConfigSettingsAction(),
|
||||||
new CreateDesktopShortcutsAction()
|
new CreateDesktopShortcutsAction()
|
||||||
};
|
};
|
||||||
|
|
|
@ -88,6 +88,7 @@ namespace WebsitePanel.Setup
|
||||||
SwitchServer2AspNet40,
|
SwitchServer2AspNet40,
|
||||||
SwitchEntServer2AspNet40,
|
SwitchEntServer2AspNet40,
|
||||||
SwitchWebPortal2AspNet40,
|
SwitchWebPortal2AspNet40,
|
||||||
|
ConfigureSecureSessionModuleInWebConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
public class InstallAction
|
public class InstallAction
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Setup.Common
|
||||||
|
{
|
||||||
|
public class StringUtils
|
||||||
|
{
|
||||||
|
public static string GenerateRandomString(int length)
|
||||||
|
{
|
||||||
|
RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider();
|
||||||
|
byte[] data = new byte[length];
|
||||||
|
crypto.GetNonZeroBytes(data);
|
||||||
|
return BitConverter.ToString(data).Replace("-", "").ToLowerInvariant();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,32 +7,6 @@ using WebsitePanel.Setup.Actions;
|
||||||
namespace WebsitePanel.Setup
|
namespace WebsitePanel.Setup
|
||||||
|
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Release 1.2.2
|
|
||||||
/// </summary>
|
|
||||||
public class EnterpriseServer122 : EnterpriseServer
|
|
||||||
{
|
|
||||||
public static new object Install(object obj)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
return EnterpriseServer.InstallBase(obj, "1.2.2");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static new DialogResult Uninstall(object obj)
|
|
||||||
{
|
|
||||||
return EnterpriseServer.Uninstall(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static new DialogResult Setup(object obj)
|
|
||||||
{
|
|
||||||
return EnterpriseServer.Setup(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static new DialogResult Update(object obj)
|
|
||||||
{
|
|
||||||
return UpdateBase(obj, "1.2.2", "1.2.1", true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Release 1.2.1
|
/// Release 1.2.1
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WebsitePanel.Setup.Actions;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Setup
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Release 2.0.0
|
||||||
|
/// </summary>
|
||||||
|
public class EnterpriseServer200 : EnterpriseServer
|
||||||
|
{
|
||||||
|
public static new object Install(object obj)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
return EnterpriseServer.InstallBase(obj, minimalInstallerVersion: "2.0.0");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static new DialogResult Uninstall(object obj)
|
||||||
|
{
|
||||||
|
return EnterpriseServer.Uninstall(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static new DialogResult Setup(object obj)
|
||||||
|
{
|
||||||
|
return EnterpriseServer.Setup(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static new DialogResult Update(object obj)
|
||||||
|
{
|
||||||
|
return UpdateBase(obj,
|
||||||
|
minimalInstallerVersion: "2.0.0",
|
||||||
|
versionToUpgrade: "1.2.1",
|
||||||
|
updateSql: true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,33 +6,6 @@ using WebsitePanel.Setup.Actions;
|
||||||
|
|
||||||
namespace WebsitePanel.Setup
|
namespace WebsitePanel.Setup
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Release 1.2.2
|
|
||||||
/// </summary>
|
|
||||||
public class Portal122 : Portal
|
|
||||||
{
|
|
||||||
public static new object Install(object obj)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
return Portal.InstallBase(obj, "1.2.2");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static new DialogResult Uninstall(object obj)
|
|
||||||
{
|
|
||||||
return Portal.Uninstall(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static new DialogResult Setup(object obj)
|
|
||||||
{
|
|
||||||
return Portal.Setup(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static new DialogResult Update(object obj)
|
|
||||||
{
|
|
||||||
return UpdateBase(obj, "1.2.2", "1.2.1", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Release 1.2.1
|
/// Release 1.2.1
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using WebsitePanel.Setup.Actions;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Setup
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Release 2.0.0
|
||||||
|
/// </summary>
|
||||||
|
public class Portal200 : Portal
|
||||||
|
{
|
||||||
|
public static new object Install(object obj)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
return Portal.InstallBase(obj, minimalInstallerVersion: "2.0.0");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static new DialogResult Uninstall(object obj)
|
||||||
|
{
|
||||||
|
return Portal.Uninstall(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static new DialogResult Setup(object obj)
|
||||||
|
{
|
||||||
|
return Portal.Setup(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static new DialogResult Update(object obj)
|
||||||
|
{
|
||||||
|
return UpdateBase(obj,
|
||||||
|
minimalInstallerVersion: "2.0.0",
|
||||||
|
versionsToUpgrade: "1.2.1",
|
||||||
|
updateSql: false,
|
||||||
|
versionSpecificAction: new InstallAction(ActionTypes.ConfigureSecureSessionModuleInWebConfig));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,33 +6,6 @@ using WebsitePanel.Setup.Actions;
|
||||||
|
|
||||||
namespace WebsitePanel.Setup
|
namespace WebsitePanel.Setup
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Release 1.2.2
|
|
||||||
/// </summary>
|
|
||||||
public class Server122 : Server
|
|
||||||
{
|
|
||||||
public static new object Install(object obj)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
return Server.InstallBase(obj, "1.2.2");
|
|
||||||
}
|
|
||||||
|
|
||||||
public static new object Uninstall(object obj)
|
|
||||||
{
|
|
||||||
return Server.Uninstall(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static new object Setup(object obj)
|
|
||||||
{
|
|
||||||
return Server.Setup(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static new object Update(object obj)
|
|
||||||
{
|
|
||||||
return Server.UpdateBase(obj, "1.2.2", "1.2.1", false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Release 1.2.1
|
/// Release 1.2.1
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Setup
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Release 2.0.0
|
||||||
|
/// </summary>
|
||||||
|
public class Server200 : Server
|
||||||
|
{
|
||||||
|
public static new object Install(object obj)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
return Server.InstallBase(obj, minimalInstallerVersion: "2.0.0");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static new object Uninstall(object obj)
|
||||||
|
{
|
||||||
|
return Server.Uninstall(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static new object Setup(object obj)
|
||||||
|
{
|
||||||
|
return Server.Setup(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static new object Update(object obj)
|
||||||
|
{
|
||||||
|
return Server.UpdateBase(obj,
|
||||||
|
minimalInstallerVersion: "2.0.0",
|
||||||
|
versionToUpgrade: "1.2.1",
|
||||||
|
updateSql: false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,18 +5,6 @@ using System.Windows.Forms;
|
||||||
|
|
||||||
namespace WebsitePanel.Setup
|
namespace WebsitePanel.Setup
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Release 1.2.2
|
|
||||||
/// </summary>
|
|
||||||
public class StandaloneServerSetup122 : StandaloneServerSetup
|
|
||||||
{
|
|
||||||
public static new object Install(object obj)
|
|
||||||
{
|
|
||||||
return StandaloneServerSetup.InstallBase(obj, "1.2.2");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Release 1.2.1
|
/// Release 1.2.1
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Setup
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Release 2.0.0
|
||||||
|
/// </summary>
|
||||||
|
public class StandaloneServerSetup200 : StandaloneServerSetup
|
||||||
|
{
|
||||||
|
public static new object Install(object obj)
|
||||||
|
{
|
||||||
|
return StandaloneServerSetup.InstallBase(obj, minimalInstallerVersion: "2.0.0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -133,6 +133,7 @@
|
||||||
<Compile Include="Common\SqlProcess.cs" />
|
<Compile Include="Common\SqlProcess.cs" />
|
||||||
<Compile Include="Common\SqlUtils.cs" />
|
<Compile Include="Common\SqlUtils.cs" />
|
||||||
<Compile Include="Common\ServerItem.cs" />
|
<Compile Include="Common\ServerItem.cs" />
|
||||||
|
<Compile Include="Common\StringUtils.cs" />
|
||||||
<Compile Include="Common\Utils.cs" />
|
<Compile Include="Common\Utils.cs" />
|
||||||
<Compile Include="Common\WebException.cs" />
|
<Compile Include="Common\WebException.cs" />
|
||||||
<Compile Include="Common\WebUtils.cs" />
|
<Compile Include="Common\WebUtils.cs" />
|
||||||
|
@ -140,8 +141,11 @@
|
||||||
<Compile Include="Common\XmlUtils.cs" />
|
<Compile Include="Common\XmlUtils.cs" />
|
||||||
<Compile Include="Common\ZipIndicator.cs" />
|
<Compile Include="Common\ZipIndicator.cs" />
|
||||||
<Compile Include="EnterpriseServer10.cs" />
|
<Compile Include="EnterpriseServer10.cs" />
|
||||||
|
<Compile Include="EnterpriseServer20.cs" />
|
||||||
<Compile Include="Portal10.cs" />
|
<Compile Include="Portal10.cs" />
|
||||||
|
<Compile Include="Portal20.cs" />
|
||||||
<Compile Include="Server10.cs" />
|
<Compile Include="Server10.cs" />
|
||||||
|
<Compile Include="Server20.cs" />
|
||||||
<Compile Include="StandaloneServerSetup.cs" />
|
<Compile Include="StandaloneServerSetup.cs" />
|
||||||
<Compile Include="EnterpriseServer.cs" />
|
<Compile Include="EnterpriseServer.cs" />
|
||||||
<Compile Include="Portal.cs" />
|
<Compile Include="Portal.cs" />
|
||||||
|
@ -160,6 +164,7 @@
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="StandaloneServerSetup10.cs" />
|
<Compile Include="StandaloneServerSetup10.cs" />
|
||||||
|
<Compile Include="StandaloneServerSetup20.cs" />
|
||||||
<Compile Include="Web\AspNetVersion.cs" />
|
<Compile Include="Web\AspNetVersion.cs" />
|
||||||
<Compile Include="Web\ServerBinding.cs" />
|
<Compile Include="Web\ServerBinding.cs" />
|
||||||
<Compile Include="Web\ServerState.cs" />
|
<Compile Include="Web\ServerState.cs" />
|
||||||
|
|
|
@ -258,6 +258,9 @@ namespace WebsitePanel.Setup
|
||||||
case ActionTypes.AddCustomErrorsPage:
|
case ActionTypes.AddCustomErrorsPage:
|
||||||
AddCustomErrorsPage();
|
AddCustomErrorsPage();
|
||||||
break;
|
break;
|
||||||
|
case ActionTypes.ConfigureSecureSessionModuleInWebConfig:
|
||||||
|
ConfigureSecureSessionModuleInWebConfig();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.progressBar.Value = 100;
|
this.progressBar.Value = 100;
|
||||||
|
@ -281,6 +284,87 @@ namespace WebsitePanel.Setup
|
||||||
Wizard.GoNext();
|
Wizard.GoNext();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ConfigureSecureSessionModuleInWebConfig()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string webConfigPath = Path.Combine(Wizard.SetupVariables.InstallationFolder, "web.config");
|
||||||
|
Log.WriteStart("Web.config file is being updated");
|
||||||
|
// Ensure the web.config exists
|
||||||
|
if (!File.Exists(webConfigPath))
|
||||||
|
{
|
||||||
|
Log.WriteInfo(string.Format("File {0} not found", webConfigPath));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Load web.config
|
||||||
|
XmlDocument doc = new XmlDocument();
|
||||||
|
doc.Load(webConfigPath);
|
||||||
|
|
||||||
|
// add node:
|
||||||
|
//<system.webServer>
|
||||||
|
// <modules>
|
||||||
|
// <add name="SecureSession" type="WebsitePanel.WebPortal.SecureSessionModule" />
|
||||||
|
// </modules>
|
||||||
|
//</system.webServer>
|
||||||
|
//
|
||||||
|
// ... or for IIS 6:
|
||||||
|
//
|
||||||
|
//<system.web>
|
||||||
|
// <httpModules>
|
||||||
|
// <add name="SecureSession" type="WebsitePanel.WebPortal.SecureSessionModule" />
|
||||||
|
// </httpModules>
|
||||||
|
//</system.web>
|
||||||
|
bool iis6 = false;
|
||||||
|
XmlElement webServer = doc.SelectSingleNode("configuration/system.webServer") as XmlElement;
|
||||||
|
if (webServer == null)
|
||||||
|
{
|
||||||
|
// this is IIS 6
|
||||||
|
webServer = doc.SelectSingleNode("configuration/system.web") as XmlElement;
|
||||||
|
iis6 = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (webServer != null)
|
||||||
|
{
|
||||||
|
var modules = doc.CreateElement(iis6 ? "httpModules" : "modules");
|
||||||
|
webServer.AppendChild(modules);
|
||||||
|
var sessionModule = doc.CreateElement("add");
|
||||||
|
sessionModule.SetAttribute("name", "SecureSession");
|
||||||
|
sessionModule.SetAttribute("type", "WebsitePanel.WebPortal.SecureSessionModule");
|
||||||
|
modules.AppendChild(sessionModule);
|
||||||
|
}
|
||||||
|
|
||||||
|
// update /system.web/httpRuntime element
|
||||||
|
var httpRuntime = doc.SelectSingleNode("configuration/system.web/httpRuntime") as XmlElement;
|
||||||
|
if (httpRuntime != null)
|
||||||
|
httpRuntime.SetAttribute("enableVersionHeader", "false");
|
||||||
|
|
||||||
|
// add:
|
||||||
|
//<appSettings>
|
||||||
|
// <add key="SessionValidationKey" value="XXXXXX" />
|
||||||
|
//</appSettings>
|
||||||
|
var appSettings = doc.SelectSingleNode("configuration/appSettings");
|
||||||
|
if (appSettings != null)
|
||||||
|
{
|
||||||
|
var sessionKey = doc.CreateElement("add");
|
||||||
|
sessionKey.SetAttribute("name", "SessionValidationKey");
|
||||||
|
sessionKey.SetAttribute("value", StringUtils.GenerateRandomString(16));
|
||||||
|
appSettings.AppendChild(sessionKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
// save changes have been made
|
||||||
|
doc.Save(webConfigPath);
|
||||||
|
//
|
||||||
|
Log.WriteEnd("Web.config has been updated");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
if (Utils.IsThreadAbortException(ex))
|
||||||
|
return;
|
||||||
|
Log.WriteError("Could not update web.config file", ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void SwitchWebPortal2AspNet40(InstallAction action, Setup.SetupVariables setupVariables)
|
private void SwitchWebPortal2AspNet40(InstallAction action, Setup.SetupVariables setupVariables)
|
||||||
{
|
{
|
||||||
var sam = new WebPortalActionManager(setupVariables);
|
var sam = new WebPortalActionManager(setupVariables);
|
||||||
|
|
|
@ -29,7 +29,7 @@ GO
|
||||||
-- IIS 8.0
|
-- IIS 8.0
|
||||||
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Internet Information Services 8.0')
|
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Internet Information Services 8.0')
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (105, 2, N'IIS80', N'Internet Information Services 8.0', N'WebsitePanel.Providers.Web.IIs70, WebsitePanel.Providers.Web.IIs70', N'IIS70', NULL)
|
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (105, 2, N'IIS80', N'Internet Information Services 8.0', N'WebsitePanel.Providers.Web.IIs80, WebsitePanel.Providers.Web.IIs80', N'IIS70', NULL)
|
||||||
END
|
END
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ GO
|
||||||
-- MS FTP 8.0
|
-- MS FTP 8.0
|
||||||
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Microsoft FTP Server 8.0')
|
IF NOT EXISTS (SELECT * FROM [dbo].[Providers] WHERE [DisplayName] = 'Microsoft FTP Server 8.0')
|
||||||
BEGIN
|
BEGIN
|
||||||
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (106, 3, N'MSFTP80', N'Microsoft FTP Server 8.0', N'WebsitePanel.Providers.FTP.MsFTP, WebsitePanel.Providers.FTP.IIs70', N'MSFTP70', NULL)
|
INSERT [dbo].[Providers] ([ProviderID], [GroupID], [ProviderName], [DisplayName], [ProviderType], [EditorControl], [DisableAutoDiscovery]) VALUES (106, 3, N'MSFTP80', N'Microsoft FTP Server 8.0', N'WebsitePanel.Providers.FTP.MsFTP80, WebsitePanel.Providers.FTP.IIs80', N'MSFTP70', NULL)
|
||||||
END
|
END
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
@ -5211,66 +5211,6 @@ GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IF NOT EXISTS(select 1 from sys.columns COLS INNER JOIN sys.objects OBJS ON OBJS.object_id=COLS.object_id and OBJS.type='U' AND OBJS.name='ExchangeOrganizationDomains' AND COLS.name='DomainTypeID')
|
|
||||||
BEGIN
|
|
||||||
ALTER TABLE [dbo].[ExchangeOrganizationDomains] ADD
|
|
||||||
[DomainTypeID] [int] NOT NULL CONSTRAINT DF_ExchangeOrganizationDomains_DomainTypeID DEFAULT 0
|
|
||||||
END
|
|
||||||
GO
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ALTER PROCEDURE [dbo].[GetExchangeOrganizationDomains]
|
|
||||||
(
|
|
||||||
@ItemID int
|
|
||||||
)
|
|
||||||
AS
|
|
||||||
SELECT
|
|
||||||
ED.DomainID,
|
|
||||||
D.DomainName,
|
|
||||||
ED.IsHost,
|
|
||||||
ED.DomainTypeID
|
|
||||||
FROM
|
|
||||||
ExchangeOrganizationDomains AS ED
|
|
||||||
INNER JOIN Domains AS D ON ED.DomainID = D.DomainID
|
|
||||||
WHERE ED.ItemID = @ItemID
|
|
||||||
RETURN
|
|
||||||
|
|
||||||
GO
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'ChangeExchangeAcceptedDomainType')
|
|
||||||
BEGIN
|
|
||||||
EXEC sp_executesql N'
|
|
||||||
CREATE PROCEDURE [dbo].ChangeExchangeAcceptedDomainType
|
|
||||||
(
|
|
||||||
@ItemID int,
|
|
||||||
@DomainID int,
|
|
||||||
@DomainTypeID int
|
|
||||||
)
|
|
||||||
AS
|
|
||||||
UPDATE ExchangeOrganizationDomains
|
|
||||||
SET DomainTypeID=@DomainTypeID
|
|
||||||
WHERE ItemID=ItemID AND DomainID=@DomainID
|
|
||||||
RETURN'
|
|
||||||
END
|
|
||||||
GO
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ALTER PROCEDURE [dbo].[GetPackages]
|
ALTER PROCEDURE [dbo].[GetPackages]
|
||||||
(
|
(
|
||||||
@ActorID int,
|
@ActorID int,
|
||||||
|
|
Binary file not shown.
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<configSections/>
|
<configSections/>
|
||||||
<appSettings>
|
<appSettings>
|
||||||
|
@ -7,4 +7,4 @@
|
||||||
<add key="enableVerboseLogging" value="false"/>
|
<add key="enableVerboseLogging" value="false"/>
|
||||||
<add key="blockInternalInterTenantOOF" value="true"/>
|
<add key="blockInternalInterTenantOOF" value="true"/>
|
||||||
</appSettings>
|
</appSettings>
|
||||||
</configuration>
|
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
|
||||||
|
|
|
@ -115,8 +115,8 @@ namespace WSPTransportAgent
|
||||||
|
|
||||||
foreach (AcceptedDomain domain in server.AcceptedDomains)
|
foreach (AcceptedDomain domain in server.AcceptedDomains)
|
||||||
{
|
{
|
||||||
htAcceptedDomains.Add(domain.ToString(), "1");
|
htAcceptedDomains.Add(domain.ToString().ToLower(), "1");
|
||||||
WriteLine("\tAccepted Domain: " + domain.ToString());
|
WriteLine("\tAccepted Domain: " + domain.ToString().ToLower());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -154,11 +154,14 @@ namespace WSPTransportAgent
|
||||||
{
|
{
|
||||||
foreach (EnvelopeRecipient recp in e.MailItem.Recipients)
|
foreach (EnvelopeRecipient recp in e.MailItem.Recipients)
|
||||||
{
|
{
|
||||||
|
WriteLine("\t\tFrom: " + e.MailItem.Message.From.SmtpAddress.ToString().ToLower());
|
||||||
WriteLine("\t\tTo: " + recp.Address.ToString().ToLower());
|
WriteLine("\t\tTo: " + recp.Address.ToString().ToLower());
|
||||||
if (IsMessageBetweenTenants(e.MailItem.FromAddress.DomainPart.ToLower(), recp.Address.DomainPart.ToLower()))
|
string[] tmpFrom = e.MailItem.Message.From.SmtpAddress.Split('@');
|
||||||
|
string[] tmpTo = recp.Address.ToString().Split('@');
|
||||||
|
if (IsMessageBetweenTenants(tmpFrom[1].ToLower(), tmpTo[1].ToLower()))
|
||||||
{
|
{
|
||||||
WriteLine("\t\tMessage routed to domain: " + recp.Address.DomainPart.ToLower() + routingDomain);
|
WriteLine("\t\tMessage routed to domain: " + tmpTo[1].ToLower() + routingDomain);
|
||||||
RoutingDomain myRoutingDomain = new RoutingDomain(recp.Address.DomainPart.ToLower() + routingDomain);
|
RoutingDomain myRoutingDomain = new RoutingDomain(tmpTo[1].ToLower() + routingDomain);
|
||||||
RoutingOverride myRoutingOverride = new RoutingOverride(myRoutingDomain, DeliveryQueueDomain.UseOverrideDomain);
|
RoutingOverride myRoutingOverride = new RoutingOverride(myRoutingDomain, DeliveryQueueDomain.UseOverrideDomain);
|
||||||
source.SetRoutingOverride(recp, myRoutingOverride);
|
source.SetRoutingOverride(recp, myRoutingOverride);
|
||||||
touched = true;
|
touched = true;
|
||||||
|
@ -173,13 +176,14 @@ namespace WSPTransportAgent
|
||||||
WriteLine("\t\tOOF From: " + e.MailItem.Message.From.SmtpAddress);
|
WriteLine("\t\tOOF From: " + e.MailItem.Message.From.SmtpAddress);
|
||||||
if (e.MailItem.Message.From.SmtpAddress.Contains("@"))
|
if (e.MailItem.Message.From.SmtpAddress.Contains("@"))
|
||||||
{
|
{
|
||||||
string[] tmp = e.MailItem.Message.From.SmtpAddress.Split('@');
|
string[] tmpFrom = e.MailItem.Message.From.SmtpAddress.Split('@');
|
||||||
foreach (EnvelopeRecipient recp in e.MailItem.Recipients)
|
foreach (EnvelopeRecipient recp in e.MailItem.Recipients)
|
||||||
{
|
{
|
||||||
WriteLine("\t\tTo: " + recp.Address.ToString().ToLower());
|
WriteLine("\t\tTo: " + recp.Address.ToString().ToLower());
|
||||||
if (IsMessageBetweenTenants(tmp[1].ToLower(), recp.Address.DomainPart.ToLower()))
|
string[] tmpTo = recp.Address.ToString().Split('@');
|
||||||
|
if (IsMessageBetweenTenants(tmpFrom[1].ToLower(), tmpTo[1].ToLower()))
|
||||||
{
|
{
|
||||||
WriteLine("\t\tRemove: " + recp.Address.DomainPart.ToLower());
|
WriteLine("\t\tRemove: " + tmpTo[1].ToLower());
|
||||||
e.MailItem.Recipients.Remove(recp);
|
e.MailItem.Recipients.Remove(recp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,9 @@
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
<RootNamespace>WSPTransportAgent</RootNamespace>
|
<RootNamespace>WSPTransportAgent</RootNamespace>
|
||||||
<AssemblyName>WSPTransportAgent</AssemblyName>
|
<AssemblyName>WSPTransportAgent</AssemblyName>
|
||||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||||
<FileAlignment>512</FileAlignment>
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<TargetFrameworkProfile />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
Windows Registry Editor Version 5.00
|
Windows Registry Editor Version 5.00
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\MEACPTransportAgent]
|
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\WSPTransportAgent]
|
||||||
"MaxSize"=dword:00080000
|
"MaxSize"=dword:00080000
|
||||||
"AutoBackupLogFiles"=dword:00000000
|
"AutoBackupLogFiles"=dword:00000000
|
||||||
"Retention"=dword:00000000
|
"Retention"=dword:00000000
|
||||||
|
|
||||||
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\MEACPTransportAgent\MEACPTransportAgent]
|
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\WSPTransportAgent\WSPTransportAgent]
|
||||||
"EventMessageFile"=hex(2):43,00,3a,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,\
|
"EventMessageFile"=hex(2):43,00,3a,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,\
|
||||||
00,73,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,2e,00,\
|
00,73,00,5c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,2e,00,\
|
||||||
4e,00,45,00,54,00,5c,00,46,00,72,00,61,00,6d,00,65,00,77,00,6f,00,72,00,6b,\
|
4e,00,45,00,54,00,5c,00,46,00,72,00,61,00,6d,00,65,00,77,00,6f,00,72,00,6b,\
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
WSP Transport Agent Installation
|
||||||
|
================================
|
||||||
|
|
||||||
|
Perform the following steps:
|
||||||
|
|
||||||
|
A) Copy the files WSPTransportAgent.dll and WSPTransportAgent.dll.config to "C:\Program Files\Microsoft\Exchange Server\V14\Public"
|
||||||
|
B) Import the WSPTransportAgent.reg to create the event source
|
||||||
|
C) Use the registry editor and provide the "NETWORK SERVICE" Full Control on the following Key
|
||||||
|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\WSPTransportAgent
|
||||||
|
D) Run the following powershell command in the exchange management shell:
|
||||||
|
Install-TransportAgent "WSPTransportAgent" -TransportAgentFactory WSPTransportAgent.WSPRoutingAgentFactory -AssemblyPath "C:\Program Files\Microsoft\Exchange Server\V14\Public\WSPTransportAgent.dll"
|
||||||
|
E) Enable-TransportAgent "WSPTransportAgent"
|
||||||
|
F) Restart-Service MSExchangeTransport
|
File diff suppressed because it is too large
Load diff
|
@ -26,34 +26,6 @@
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -124,6 +96,10 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback DeleteWebSiteOperationCompleted;
|
private System.Threading.SendOrPostCallback DeleteWebSiteOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback SwitchWebSiteToDedicatedIPOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback SwitchWebSiteToSharedIPOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback DeleteVirtualDirectoryOperationCompleted;
|
private System.Threading.SendOrPostCallback DeleteVirtualDirectoryOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback ChangeSiteStateOperationCompleted;
|
private System.Threading.SendOrPostCallback ChangeSiteStateOperationCompleted;
|
||||||
|
@ -306,6 +282,12 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event DeleteWebSiteCompletedEventHandler DeleteWebSiteCompleted;
|
public event DeleteWebSiteCompletedEventHandler DeleteWebSiteCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event SwitchWebSiteToDedicatedIPCompletedEventHandler SwitchWebSiteToDedicatedIPCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event SwitchWebSiteToSharedIPCompletedEventHandler SwitchWebSiteToSharedIPCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event DeleteVirtualDirectoryCompletedEventHandler DeleteVirtualDirectoryCompleted;
|
public event DeleteVirtualDirectoryCompletedEventHandler DeleteVirtualDirectoryCompleted;
|
||||||
|
|
||||||
|
@ -855,22 +837,24 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/AddWebSite", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/AddWebSite", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
public int AddWebSite(int packageId, string hostName, int domainId, int ipAddressId) {
|
public int AddWebSite(int packageId, string hostName, int domainId, int ipAddressId, bool ignoreGlobalDNSZone) {
|
||||||
object[] results = this.Invoke("AddWebSite", new object[] {
|
object[] results = this.Invoke("AddWebSite", new object[] {
|
||||||
packageId,
|
packageId,
|
||||||
hostName,
|
hostName,
|
||||||
domainId,
|
domainId,
|
||||||
ipAddressId});
|
ipAddressId,
|
||||||
|
ignoreGlobalDNSZone});
|
||||||
return ((int)(results[0]));
|
return ((int)(results[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public System.IAsyncResult BeginAddWebSite(int packageId, string hostName, int domainId, int ipAddressId, System.AsyncCallback callback, object asyncState) {
|
public System.IAsyncResult BeginAddWebSite(int packageId, string hostName, int domainId, int ipAddressId, bool ignoreGlobalDNSZone, System.AsyncCallback callback, object asyncState) {
|
||||||
return this.BeginInvoke("AddWebSite", new object[] {
|
return this.BeginInvoke("AddWebSite", new object[] {
|
||||||
packageId,
|
packageId,
|
||||||
hostName,
|
hostName,
|
||||||
domainId,
|
domainId,
|
||||||
ipAddressId}, callback, asyncState);
|
ipAddressId,
|
||||||
|
ignoreGlobalDNSZone}, callback, asyncState);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
|
@ -880,12 +864,12 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public void AddWebSiteAsync(int packageId, string hostName, int domainId, int ipAddressId) {
|
public void AddWebSiteAsync(int packageId, string hostName, int domainId, int ipAddressId, bool ignoreGlobalDNSZone) {
|
||||||
this.AddWebSiteAsync(packageId, hostName, domainId, ipAddressId, null);
|
this.AddWebSiteAsync(packageId, hostName, domainId, ipAddressId, ignoreGlobalDNSZone, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public void AddWebSiteAsync(int packageId, string hostName, int domainId, int ipAddressId, object userState) {
|
public void AddWebSiteAsync(int packageId, string hostName, int domainId, int ipAddressId, bool ignoreGlobalDNSZone, object userState) {
|
||||||
if ((this.AddWebSiteOperationCompleted == null)) {
|
if ((this.AddWebSiteOperationCompleted == null)) {
|
||||||
this.AddWebSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddWebSiteOperationCompleted);
|
this.AddWebSiteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddWebSiteOperationCompleted);
|
||||||
}
|
}
|
||||||
|
@ -893,7 +877,8 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
packageId,
|
packageId,
|
||||||
hostName,
|
hostName,
|
||||||
domainId,
|
domainId,
|
||||||
ipAddressId}, this.AddWebSiteOperationCompleted, userState);
|
ipAddressId,
|
||||||
|
ignoreGlobalDNSZone}, this.AddWebSiteOperationCompleted, userState);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnAddWebSiteOperationCompleted(object arg) {
|
private void OnAddWebSiteOperationCompleted(object arg) {
|
||||||
|
@ -1252,6 +1237,91 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SwitchWebSiteToDedicatedIP", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public int SwitchWebSiteToDedicatedIP(int siteItemId, int ipAddressId) {
|
||||||
|
object[] results = this.Invoke("SwitchWebSiteToDedicatedIP", new object[] {
|
||||||
|
siteItemId,
|
||||||
|
ipAddressId});
|
||||||
|
return ((int)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginSwitchWebSiteToDedicatedIP(int siteItemId, int ipAddressId, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("SwitchWebSiteToDedicatedIP", new object[] {
|
||||||
|
siteItemId,
|
||||||
|
ipAddressId}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public int EndSwitchWebSiteToDedicatedIP(System.IAsyncResult asyncResult) {
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((int)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SwitchWebSiteToDedicatedIPAsync(int siteItemId, int ipAddressId) {
|
||||||
|
this.SwitchWebSiteToDedicatedIPAsync(siteItemId, ipAddressId, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SwitchWebSiteToDedicatedIPAsync(int siteItemId, int ipAddressId, object userState) {
|
||||||
|
if ((this.SwitchWebSiteToDedicatedIPOperationCompleted == null)) {
|
||||||
|
this.SwitchWebSiteToDedicatedIPOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSwitchWebSiteToDedicatedIPOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("SwitchWebSiteToDedicatedIP", new object[] {
|
||||||
|
siteItemId,
|
||||||
|
ipAddressId}, this.SwitchWebSiteToDedicatedIPOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSwitchWebSiteToDedicatedIPOperationCompleted(object arg) {
|
||||||
|
if ((this.SwitchWebSiteToDedicatedIPCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.SwitchWebSiteToDedicatedIPCompleted(this, new SwitchWebSiteToDedicatedIPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/SwitchWebSiteToSharedIP", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public int SwitchWebSiteToSharedIP(int siteItemId) {
|
||||||
|
object[] results = this.Invoke("SwitchWebSiteToSharedIP", new object[] {
|
||||||
|
siteItemId});
|
||||||
|
return ((int)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginSwitchWebSiteToSharedIP(int siteItemId, System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("SwitchWebSiteToSharedIP", new object[] {
|
||||||
|
siteItemId}, callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public int EndSwitchWebSiteToSharedIP(System.IAsyncResult asyncResult) {
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((int)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SwitchWebSiteToSharedIPAsync(int siteItemId) {
|
||||||
|
this.SwitchWebSiteToSharedIPAsync(siteItemId, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void SwitchWebSiteToSharedIPAsync(int siteItemId, object userState) {
|
||||||
|
if ((this.SwitchWebSiteToSharedIPOperationCompleted == null)) {
|
||||||
|
this.SwitchWebSiteToSharedIPOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSwitchWebSiteToSharedIPOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("SwitchWebSiteToSharedIP", new object[] {
|
||||||
|
siteItemId}, this.SwitchWebSiteToSharedIPOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnSwitchWebSiteToSharedIPOperationCompleted(object arg) {
|
||||||
|
if ((this.SwitchWebSiteToSharedIPCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.SwitchWebSiteToSharedIPCompleted(this, new SwitchWebSiteToSharedIPCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/DeleteVirtualDirectory", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/DeleteVirtualDirectory", RequestNamespace="http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace="http://smbsaas/websitepanel/enterpriseserver", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
public int DeleteVirtualDirectory(int siteItemId, string vdirName) {
|
public int DeleteVirtualDirectory(int siteItemId, string vdirName) {
|
||||||
|
@ -4422,6 +4492,58 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void SwitchWebSiteToDedicatedIPCompletedEventHandler(object sender, SwitchWebSiteToDedicatedIPCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class SwitchWebSiteToDedicatedIPCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal SwitchWebSiteToDedicatedIPCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState) {
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public int Result {
|
||||||
|
get {
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((int)(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
public delegate void SwitchWebSiteToSharedIPCompletedEventHandler(object sender, SwitchWebSiteToSharedIPCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class SwitchWebSiteToSharedIPCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal SwitchWebSiteToSharedIPCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState) {
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public int Result {
|
||||||
|
get {
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((int)(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")]
|
||||||
public delegate void DeleteVirtualDirectoryCompletedEventHandler(object sender, DeleteVirtualDirectoryCompletedEventArgs e);
|
public delegate void DeleteVirtualDirectoryCompletedEventHandler(object sender, DeleteVirtualDirectoryCompletedEventArgs e);
|
||||||
|
|
|
@ -102,7 +102,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
if (allowEmptyValue)
|
if (allowEmptyValue)
|
||||||
{
|
{
|
||||||
if (String.IsNullOrEmpty(str)) return str;
|
if (String.IsNullOrEmpty(str)) return str;
|
||||||
if (String.IsNullOrEmpty(value)) return string.Empty;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -33,6 +33,7 @@ using System.Data.SqlClient;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using WebsitePanel.Providers.HostedSolution;
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
using Microsoft.ApplicationBlocks.Data;
|
using Microsoft.ApplicationBlocks.Data;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace WebsitePanel.EnterpriseServer
|
namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
|
@ -2152,18 +2153,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ChangeExchangeAcceptedDomainType(int itemId, int domainId, int domainTypeId)
|
|
||||||
{
|
|
||||||
SqlHelper.ExecuteNonQuery(
|
|
||||||
ConnectionString,
|
|
||||||
CommandType.StoredProcedure,
|
|
||||||
"ChangeExchangeAcceptedDomainType",
|
|
||||||
new SqlParameter("@ItemID", itemId),
|
|
||||||
new SqlParameter("@DomainID", domainId),
|
|
||||||
new SqlParameter("@DomainTypeID", domainTypeId)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static IDataReader GetExchangeOrganizationStatistics(int itemId)
|
public static IDataReader GetExchangeOrganizationStatistics(int itemId)
|
||||||
{
|
{
|
||||||
return SqlHelper.ExecuteReader(
|
return SqlHelper.ExecuteReader(
|
||||||
|
@ -3411,5 +3400,45 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
public static int GetPackageIdByName(string Name)
|
||||||
|
{
|
||||||
|
// get Helicon Zoo provider
|
||||||
|
int packageId = -1;
|
||||||
|
List<ProviderInfo> providers = ServerController.GetProviders();
|
||||||
|
foreach (ProviderInfo providerInfo in providers)
|
||||||
|
{
|
||||||
|
if (string.Equals(Name, providerInfo.ProviderName, StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
|
packageId = providerInfo.ProviderId;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (-1 == packageId)
|
||||||
|
{
|
||||||
|
throw new Exception("Provider not found");
|
||||||
|
}
|
||||||
|
|
||||||
|
return packageId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int GetServiceIdByProviderForServer(int providerId, int serverId)
|
||||||
|
{
|
||||||
|
IDataReader reader = SqlHelper.ExecuteReader(ConnectionString, CommandType.Text,
|
||||||
|
@"SELECT TOP 1
|
||||||
|
ServiceID
|
||||||
|
FROM Services
|
||||||
|
WHERE ProviderID = @ProviderID AND ServerID = @ServerID",
|
||||||
|
new SqlParameter("@ProviderID", providerId),
|
||||||
|
new SqlParameter("@ServerID", serverId));
|
||||||
|
|
||||||
|
if (reader.Read())
|
||||||
|
{
|
||||||
|
return (int)reader["ServiceID"];
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -310,8 +310,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
rr.MxPriority = record.MxPriority;
|
rr.MxPriority = record.MxPriority;
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(rr.RecordData))
|
if (!String.IsNullOrEmpty(rr.RecordData))
|
||||||
|
{
|
||||||
|
if (rr.RecordName != "[host_name]")
|
||||||
zoneRecords.Add(rr);
|
zoneRecords.Add(rr);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return zoneRecords;
|
return zoneRecords;
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,6 +41,7 @@ using WebsitePanel.Providers.OS;
|
||||||
using OS = WebsitePanel.Providers.OS;
|
using OS = WebsitePanel.Providers.OS;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
|
||||||
|
|
||||||
namespace WebsitePanel.EnterpriseServer
|
namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
public class OperatingSystemController : IImportController, IBackupController
|
public class OperatingSystemController : IImportController, IBackupController
|
||||||
|
@ -409,6 +410,23 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
#region Web Platform Installer
|
#region Web Platform Installer
|
||||||
|
|
||||||
|
public static bool CheckLoadUserProfile(int serverId)
|
||||||
|
{
|
||||||
|
int packageId = DataProvider.GetPackageIdByName("IIS70");
|
||||||
|
int serviceId = DataProvider.GetServiceIdByProviderForServer(packageId, serverId);
|
||||||
|
return WebServerController.GetWebServer(serviceId).CheckLoadUserProfile();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void EnableLoadUserProfile(int serverId)
|
||||||
|
{
|
||||||
|
int packageId = DataProvider.GetPackageIdByName("IIS70");
|
||||||
|
int serviceId = DataProvider.GetServiceIdByProviderForServer(packageId, serverId);
|
||||||
|
WebServerController.GetWebServer(serviceId).EnableLoadUserProfile();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void InitWPIFeeds(int serverId, string feedUrls)
|
public static void InitWPIFeeds(int serverId, string feedUrls)
|
||||||
{
|
{
|
||||||
GetServerService(serverId).InitWPIFeeds(feedUrls);
|
GetServerService(serverId).InitWPIFeeds(feedUrls);
|
||||||
|
@ -747,6 +765,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -481,7 +481,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// create web site
|
// create web site
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int webSiteId = WebServerController.AddWebSite(packageId, hostName, domainId, 0, true);
|
int webSiteId = WebServerController.AddWebSite(packageId, hostName, domainId, 0, true, false);
|
||||||
if (webSiteId < 0)
|
if (webSiteId < 0)
|
||||||
{
|
{
|
||||||
result.Result = webSiteId;
|
result.Result = webSiteId;
|
||||||
|
|
|
@ -1729,7 +1729,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
int webSiteId = 0;
|
int webSiteId = 0;
|
||||||
if (webEnabled && createWebSite)
|
if (webEnabled && createWebSite)
|
||||||
{
|
{
|
||||||
webSiteId = WebServerController.AddWebSite(packageId, hostName, domainId, 0, createInstantAlias);
|
webSiteId = WebServerController.AddWebSite(packageId, hostName, domainId, 0, createInstantAlias, false);
|
||||||
|
|
||||||
if (webSiteId < 0)
|
if (webSiteId < 0)
|
||||||
{
|
{
|
||||||
|
@ -2005,6 +2005,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete zone if required
|
// delete zone if required
|
||||||
|
if (!domain.IsDomainPointer)
|
||||||
DnsServerController.DeleteZone(domain.ZoneItemId);
|
DnsServerController.DeleteZone(domain.ZoneItemId);
|
||||||
|
|
||||||
// delete domain
|
// delete domain
|
||||||
|
|
|
@ -157,11 +157,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static int AddWebSite(int packageId, string hostName, int domainId, int ipAddressId)
|
public static int AddWebSite(int packageId, string hostName, int domainId, int ipAddressId)
|
||||||
{
|
{
|
||||||
return AddWebSite(packageId, hostName, domainId, ipAddressId, false);
|
return AddWebSite(packageId, hostName, domainId, ipAddressId, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int AddWebSite(int packageId, string hostName, int domainId, int packageAddressId,
|
public static int AddWebSite(int packageId, string hostName, int domainId, int packageAddressId,
|
||||||
bool addInstantAlias)
|
bool addInstantAlias, bool ignoreGlobalDNSRecords)
|
||||||
{
|
{
|
||||||
// check account
|
// check account
|
||||||
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
@ -180,12 +180,15 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
DomainInfo domain = ServerController.GetDomain(domainId);
|
DomainInfo domain = ServerController.GetDomain(domainId);
|
||||||
string domainName = domain.DomainName;
|
string domainName = domain.DomainName;
|
||||||
|
|
||||||
// check if the web site already exists
|
string siteName = string.IsNullOrEmpty(hostName) ? domainName : hostName + "." + domainName;
|
||||||
if (PackageController.GetPackageItemByName(packageId, domainName, typeof(WebSite)) != null)
|
|
||||||
|
// check if the web site already exists (legacy)
|
||||||
|
if (PackageController.GetPackageItemByName(packageId, siteName, typeof(WebSite)) != null)
|
||||||
return BusinessErrorCodes.ERROR_WEB_SITE_ALREADY_EXISTS;
|
return BusinessErrorCodes.ERROR_WEB_SITE_ALREADY_EXISTS;
|
||||||
|
|
||||||
|
if (DataProvider.CheckDomain(domain.PackageId, siteName, true) != 0)
|
||||||
|
return BusinessErrorCodes.ERROR_WEB_SITE_ALREADY_EXISTS;
|
||||||
|
|
||||||
string siteName = string.IsNullOrEmpty(hostName) ? domainName : hostName + "." + domainName; ;
|
|
||||||
|
|
||||||
// place log record
|
// place log record
|
||||||
TaskManager.StartTask("WEB_SITE", "ADD", siteName);
|
TaskManager.StartTask("WEB_SITE", "ADD", siteName);
|
||||||
|
@ -240,13 +243,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
if (ip != null)
|
if (ip != null)
|
||||||
ipAddr = !String.IsNullOrEmpty(ip.InternalIP) ? ip.InternalIP : ip.ExternalIP;
|
ipAddr = !String.IsNullOrEmpty(ip.InternalIP) ? ip.InternalIP : ip.ExternalIP;
|
||||||
|
|
||||||
// load domain instant alias
|
|
||||||
/*
|
|
||||||
string instantAlias = ServerController.GetDomainAlias(packageId, domainName);
|
|
||||||
DomainInfo instantDomain = ServerController.GetDomain(instantAlias);
|
|
||||||
if (instantDomain == null || instantDomain.WebSiteId > 0)
|
|
||||||
instantAlias = "";
|
|
||||||
*/
|
|
||||||
|
|
||||||
// load web DNS records
|
// load web DNS records
|
||||||
List<GlobalDnsRecord> dnsRecords = ServerController.GetDnsRecordsByService(serviceId);
|
List<GlobalDnsRecord> dnsRecords = ServerController.GetDnsRecordsByService(serviceId);
|
||||||
|
@ -258,17 +254,15 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
// SHARED IP
|
// SHARED IP
|
||||||
// fill main domain bindings
|
// fill main domain bindings
|
||||||
/*
|
FillWebServerBindings(bindings, dnsRecords, ipAddr, hostName, domain.DomainName, ignoreGlobalDNSRecords);
|
||||||
FillWebServerBindings(bindings, dnsRecords, ipAddr, domain.DomainName);
|
|
||||||
|
|
||||||
// fill alias bindings if required
|
//double check all bindings
|
||||||
if (addInstantAlias && !String.IsNullOrEmpty(instantAlias))
|
foreach (ServerBinding b in bindings)
|
||||||
{
|
{
|
||||||
// fill bindings from DNS "A" records
|
if (DataProvider.CheckDomain(domain.PackageId, b.Host, true) != 0)
|
||||||
FillWebServerBindings(bindings, dnsRecords, ipAddr, instantAlias);
|
return BusinessErrorCodes.ERROR_WEB_SITE_ALREADY_EXISTS;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
bindings.Add(new ServerBinding(ipAddr, "80", siteName));
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -392,13 +386,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
// update domain
|
// update domain
|
||||||
// add main pointer
|
// add main pointer
|
||||||
AddWebSitePointer(siteItemId, hostName, domain.DomainId, false);
|
AddWebSitePointer(siteItemId, hostName, domain.DomainId, false, ignoreGlobalDNSRecords);
|
||||||
|
|
||||||
// add instant pointer
|
|
||||||
/*
|
|
||||||
if (addInstantAlias && !String.IsNullOrEmpty(instantAlias))
|
|
||||||
AddWebSitePointer(siteItemId, instantDomain.DomainId, false);
|
|
||||||
*/
|
|
||||||
|
|
||||||
// add parking page
|
// add parking page
|
||||||
// load package
|
// load package
|
||||||
|
@ -574,12 +563,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// remove all web site pointers
|
// remove all web site pointers
|
||||||
List<DomainInfo> pointers = GetWebSitePointers(siteItemId);
|
List<DomainInfo> pointers = GetWebSitePointers(siteItemId);
|
||||||
foreach (DomainInfo pointer in pointers)
|
foreach (DomainInfo pointer in pointers)
|
||||||
DeleteWebSitePointer(siteItemId, pointer.DomainId, false);
|
DeleteWebSitePointer(siteItemId, pointer.DomainId, false, true);
|
||||||
|
|
||||||
// remove web site main pointer
|
// remove web site main pointer
|
||||||
DomainInfo domain = ServerController.GetDomain(siteItem.Name);
|
DomainInfo domain = ServerController.GetDomain(siteItem.Name);
|
||||||
if(domain != null)
|
if(domain != null)
|
||||||
DeleteWebSitePointer(siteItemId, domain.DomainId, false);
|
DeleteWebSitePointer(siteItemId, domain.DomainId, false, true);
|
||||||
|
|
||||||
// delete web site
|
// delete web site
|
||||||
WebServer web = new WebServer();
|
WebServer web = new WebServer();
|
||||||
|
@ -611,8 +600,110 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int SwitchWebSiteToDedicatedIP(int siteItemId, int ipAddressId)
|
||||||
|
{
|
||||||
|
// check account
|
||||||
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
if (accountCheck < 0) return accountCheck;
|
||||||
|
|
||||||
|
// load web site item
|
||||||
|
WebSite siteItem = (WebSite)PackageController.GetPackageItem(siteItemId);
|
||||||
|
if (siteItem == null)
|
||||||
|
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
|
||||||
|
|
||||||
|
// load assigned IP address
|
||||||
|
IPAddressInfo ip = ServerController.GetIPAddress(ipAddressId);
|
||||||
|
if (ip == null)
|
||||||
|
return BusinessErrorCodes.ERROR_WEB_SITE_IP_ADDRESS_NOT_SPECIFIED;
|
||||||
|
|
||||||
|
string ipAddr = !String.IsNullOrEmpty(ip.InternalIP) ? ip.InternalIP : ip.ExternalIP;
|
||||||
|
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("WEB_SITE", "SWITCH_TO_DEDICATED_IP", siteItem.Name);
|
||||||
|
TaskManager.ItemId = siteItemId;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// get web site pointers
|
||||||
|
var sitePointers = GetWebSitePointers(siteItemId);
|
||||||
|
|
||||||
|
// get existing web site bindings
|
||||||
|
WebServer web = new WebServer();
|
||||||
|
ServiceProviderProxy.Init(web, siteItem.ServiceId);
|
||||||
|
var bindings = web.GetSiteBindings(siteItem.SiteId);
|
||||||
|
|
||||||
|
// update site bindings
|
||||||
|
web.UpdateSiteBindings(siteItem.SiteId, new ServerBinding[] { new ServerBinding(ipAddr, "80", "") });
|
||||||
|
|
||||||
|
// update site item
|
||||||
|
siteItem.SiteIPAddressId = ipAddressId;
|
||||||
|
PackageController.UpdatePackageItem(siteItem);
|
||||||
|
|
||||||
|
// associate IP with web site
|
||||||
|
if (ipAddressId != 0)
|
||||||
|
ServerController.AddItemIPAddress(siteItemId, ipAddressId);
|
||||||
|
|
||||||
|
// TODO - what would be correct logic here?
|
||||||
|
// re-create pointers
|
||||||
|
foreach (var pointer in sitePointers)
|
||||||
|
DeleteWebSitePointer(siteItemId, pointer.DomainId, false, true);
|
||||||
|
|
||||||
|
foreach (var pointer in sitePointers)
|
||||||
|
AddWebSitePointer(siteItemId, null, pointer.DomainId, false);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int SwitchWebSiteToSharedIP(int siteItemId)
|
||||||
|
{
|
||||||
|
// check account
|
||||||
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
if (accountCheck < 0) return accountCheck;
|
||||||
|
|
||||||
|
// load web site item
|
||||||
|
WebSite siteItem = (WebSite)PackageController.GetPackageItem(siteItemId);
|
||||||
|
if (siteItem == null)
|
||||||
|
return BusinessErrorCodes.ERROR_WEB_SITE_PACKAGE_ITEM_NOT_FOUND;
|
||||||
|
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("WEB_SITE", "SWITCH_TO_SHARED_IP", siteItem.Name);
|
||||||
|
TaskManager.ItemId = siteItemId;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// get web site pointers
|
||||||
|
var sitePointers = GetWebSitePointers(siteItemId);
|
||||||
|
|
||||||
|
// get existing web site bindings
|
||||||
|
WebServer web = new WebServer();
|
||||||
|
ServiceProviderProxy.Init(web, siteItem.ServiceId);
|
||||||
|
var bindings = web.GetSiteBindings(siteItem.SiteId);
|
||||||
|
|
||||||
|
// TODO - what would be correct logic here?
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static void FillWebServerBindings(List<ServerBinding> bindings, List<GlobalDnsRecord> dnsRecords,
|
private static void FillWebServerBindings(List<ServerBinding> bindings, List<GlobalDnsRecord> dnsRecords,
|
||||||
string ipAddr, string hostName, string domainName)
|
string ipAddr, string hostName, string domainName, bool ignoreGlobalDNSRecords)
|
||||||
// TODO test if IPv6 works
|
// TODO test if IPv6 works
|
||||||
{
|
{
|
||||||
int bindingsCount = bindings.Count;
|
int bindingsCount = bindings.Count;
|
||||||
|
@ -621,35 +712,45 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
if ((dnsRecord.RecordType == "A" || dnsRecord.RecordType == "AAAA" || dnsRecord.RecordType == "CNAME") &&
|
if ((dnsRecord.RecordType == "A" || dnsRecord.RecordType == "AAAA" || dnsRecord.RecordType == "CNAME") &&
|
||||||
dnsRecord.RecordName != "*")
|
dnsRecord.RecordName != "*")
|
||||||
{
|
{
|
||||||
/*
|
string recordData = Utils.ReplaceStringVariable(dnsRecord.RecordName, "host_name", hostName, true);
|
||||||
string recordData = dnsRecord.RecordName +
|
|
||||||
((dnsRecord.RecordName != "") ? "." : "") + domainName;
|
|
||||||
|
|
||||||
bindings.Add(new ServerBinding(ipAddr, "80", recordData));
|
if (!string.IsNullOrEmpty(domainName))
|
||||||
*/
|
recordData = recordData + ((string.IsNullOrEmpty(recordData)) ? "" : ".") + domainName;
|
||||||
|
//otherwise full recordData is supplied by hostName
|
||||||
|
|
||||||
string tmpName = string.Empty;
|
if (ignoreGlobalDNSRecords)
|
||||||
if (!String.IsNullOrEmpty(hostName))
|
|
||||||
tmpName = Utils.ReplaceStringVariable(dnsRecord.RecordName, "host_name", hostName);
|
|
||||||
|
|
||||||
string recordData = string.Empty;
|
|
||||||
if (tmpName.Contains("."))
|
|
||||||
recordData = hostName;
|
|
||||||
else
|
|
||||||
recordData = tmpName + ((tmpName != "") ? "." : "") + domainName;
|
|
||||||
|
|
||||||
bindings.Add(new ServerBinding(ipAddr, "80", recordData));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
if(bindings.Count == bindingsCount)
|
|
||||||
{
|
{
|
||||||
bindings.Add(new ServerBinding(ipAddr, "80", domainName));
|
//only look for the host_nanme record, ignore all others
|
||||||
bindings.Add(new ServerBinding(ipAddr, "80", "www." + domainName));
|
if (dnsRecord.RecordName == "[host_name]")
|
||||||
|
{
|
||||||
|
AddBinding(bindings, new ServerBinding(ipAddr, "80", recordData));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AddBinding(bindings, new ServerBinding(ipAddr, "80", recordData));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((bindings.Count == bindingsCount) | (bindings.Count == 0))
|
||||||
|
{
|
||||||
|
AddBinding(bindings, new ServerBinding(ipAddr, "80", string.IsNullOrEmpty(hostName) ? domainName : hostName + "." + domainName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AddBinding(List<ServerBinding> bindings, ServerBinding binding)
|
||||||
|
{
|
||||||
|
foreach (ServerBinding b in bindings)
|
||||||
|
{
|
||||||
|
if (string.Compare(b.Host, binding.Host, true) == 0)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bindings.Add(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static string GetWebSiteUsername(UserSettings webPolicy, string domainName)
|
private static string GetWebSiteUsername(UserSettings webPolicy, string domainName)
|
||||||
{
|
{
|
||||||
|
@ -736,10 +837,15 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static int AddWebSitePointer(int siteItemId, string hostName, int domainId)
|
public static int AddWebSitePointer(int siteItemId, string hostName, int domainId)
|
||||||
{
|
{
|
||||||
return AddWebSitePointer(siteItemId, hostName, domainId, true);
|
return AddWebSitePointer(siteItemId, hostName, domainId, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static int AddWebSitePointer(int siteItemId, string hostName, int domainId, bool updateWebSite)
|
internal static int AddWebSitePointer(int siteItemId, string hostName, int domainId, bool updateWebSite)
|
||||||
|
{
|
||||||
|
return AddWebSitePointer(siteItemId, hostName, domainId, updateWebSite, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static int AddWebSitePointer(int siteItemId, string hostName, int domainId, bool updateWebSite, bool ignoreGlobalDNSRecords)
|
||||||
{
|
{
|
||||||
// check account
|
// check account
|
||||||
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
@ -755,6 +861,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
if (domain == null)
|
if (domain == null)
|
||||||
return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND;
|
return BusinessErrorCodes.ERROR_DOMAIN_PACKAGE_ITEM_NOT_FOUND;
|
||||||
|
|
||||||
|
// check if the web site already exists
|
||||||
|
if (DataProvider.CheckDomain(domain.PackageId, string.IsNullOrEmpty(hostName) ? domain.DomainName : hostName + "." + domain.DomainName, true) != 0)
|
||||||
|
return BusinessErrorCodes.ERROR_WEB_SITE_ALREADY_EXISTS;
|
||||||
|
|
||||||
// get zone records for the service
|
// get zone records for the service
|
||||||
List<GlobalDnsRecord> dnsRecords = ServerController.GetDnsRecordsByService(siteItem.ServiceId);
|
List<GlobalDnsRecord> dnsRecords = ServerController.GetDnsRecordsByService(siteItem.ServiceId);
|
||||||
|
|
||||||
|
@ -773,13 +883,40 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// load appropriate zone
|
// load appropriate zone
|
||||||
DnsZone zone = (DnsZone)PackageController.GetPackageItem(domain.ZoneItemId);
|
DnsZone zone = (DnsZone)PackageController.GetPackageItem(domain.ZoneItemId);
|
||||||
|
|
||||||
|
|
||||||
if (zone != null)
|
if (zone != null)
|
||||||
{
|
{
|
||||||
// change DNS zone
|
// change DNS zone
|
||||||
|
List<GlobalDnsRecord> tmpDnsRecords = new List<GlobalDnsRecord>();
|
||||||
|
|
||||||
string serviceIp = (ip != null) ? ip.ExternalIP : null;
|
string serviceIp = (ip != null) ? ip.ExternalIP : null;
|
||||||
|
|
||||||
|
//filter initiat GlobaDNSRecords list
|
||||||
|
if (ignoreGlobalDNSRecords)
|
||||||
|
{
|
||||||
|
//ignore all other except the host_name record
|
||||||
|
foreach (GlobalDnsRecord r in dnsRecords)
|
||||||
|
{
|
||||||
|
if (r.RecordName == "[host_name]")
|
||||||
|
tmpDnsRecords.Add(r);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
tmpDnsRecords = dnsRecords;
|
||||||
|
|
||||||
|
|
||||||
List<DnsRecord> resourceRecords = DnsServerController.BuildDnsResourceRecords(
|
List<DnsRecord> resourceRecords = DnsServerController.BuildDnsResourceRecords(
|
||||||
dnsRecords, hostName, domain.DomainName, serviceIp);
|
tmpDnsRecords, hostName, domain.DomainName, serviceIp);
|
||||||
|
|
||||||
|
foreach (DnsRecord r in resourceRecords)
|
||||||
|
{
|
||||||
|
if (r.RecordName != "*")
|
||||||
|
{
|
||||||
|
// check if the web site already exists
|
||||||
|
if (DataProvider.CheckDomain(domain.PackageId, string.IsNullOrEmpty(r.RecordName) ? domain.DomainName : r.RecordName + "." + domain.DomainName, true) != 0)
|
||||||
|
return BusinessErrorCodes.ERROR_WEB_SITE_ALREADY_EXISTS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -796,13 +933,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
// update host headers
|
// update host headers
|
||||||
if (updateWebSite)
|
List<ServerBinding> bindings = new List<ServerBinding>();
|
||||||
{
|
|
||||||
// get existing web site bindings
|
// get existing web site bindings
|
||||||
WebServer web = new WebServer();
|
WebServer web = new WebServer();
|
||||||
ServiceProviderProxy.Init(web, siteItem.ServiceId);
|
ServiceProviderProxy.Init(web, siteItem.ServiceId);
|
||||||
|
|
||||||
List<ServerBinding> bindings = new List<ServerBinding>();
|
|
||||||
bindings.AddRange(web.GetSiteBindings(siteItem.SiteId));
|
bindings.AddRange(web.GetSiteBindings(siteItem.SiteId));
|
||||||
|
|
||||||
// check if web site has dedicated IP assigned
|
// check if web site has dedicated IP assigned
|
||||||
|
@ -817,29 +953,29 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
ipAddr = !String.IsNullOrEmpty(ip.InternalIP) ? ip.InternalIP : ip.ExternalIP;
|
ipAddr = !String.IsNullOrEmpty(ip.InternalIP) ? ip.InternalIP : ip.ExternalIP;
|
||||||
|
|
||||||
// fill bindings
|
// fill bindings
|
||||||
FillWebServerBindings(bindings, dnsRecords, ipAddr, hostName, domain.DomainName);
|
FillWebServerBindings(bindings, dnsRecords, ipAddr, hostName, domain.DomainName, ignoreGlobalDNSRecords);
|
||||||
|
|
||||||
|
//for logging purposes
|
||||||
foreach (ServerBinding b in bindings)
|
foreach (ServerBinding b in bindings)
|
||||||
{
|
{
|
||||||
string header = string.Format("{0} {1} {2}", b.Host, b.IP, b.Port);
|
string header = string.Format("{0} {1} {2}", b.Host, b.IP, b.Port);
|
||||||
TaskManager.WriteParameter("Add Binding", b.Host);
|
TaskManager.WriteParameter("Add Binding", header);
|
||||||
}
|
}
|
||||||
|
|
||||||
// update bindings
|
// update bindings
|
||||||
|
if (updateWebSite)
|
||||||
web.UpdateSiteBindings(siteItem.SiteId, bindings.ToArray());
|
web.UpdateSiteBindings(siteItem.SiteId, bindings.ToArray());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// update domain
|
// update domain
|
||||||
domain.WebSiteId = siteItemId;
|
domain.WebSiteId = siteItemId;
|
||||||
//ServerController.UpdateDomain(domain);
|
|
||||||
if (!String.IsNullOrEmpty(hostName))
|
|
||||||
domain.DomainName = hostName + "." + domain.DomainName;
|
|
||||||
else
|
|
||||||
domain.DomainName = domain.DomainName;
|
|
||||||
domain.IsDomainPointer = true;
|
domain.IsDomainPointer = true;
|
||||||
|
foreach (ServerBinding b in bindings)
|
||||||
|
{
|
||||||
|
//add new domain record
|
||||||
|
domain.DomainName = b.Host;
|
||||||
int domainID = ServerController.AddDomain(domain);
|
int domainID = ServerController.AddDomain(domain);
|
||||||
|
|
||||||
DomainInfo domainTmp = ServerController.GetDomain(domainID);
|
DomainInfo domainTmp = ServerController.GetDomain(domainID);
|
||||||
if (domainTmp != null)
|
if (domainTmp != null)
|
||||||
{
|
{
|
||||||
|
@ -847,7 +983,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
domainTmp.ZoneItemId = domain.ZoneItemId;
|
domainTmp.ZoneItemId = domain.ZoneItemId;
|
||||||
ServerController.UpdateDomain(domainTmp);
|
ServerController.UpdateDomain(domainTmp);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -863,10 +999,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
public static int DeleteWebSitePointer(int siteItemId, int domainId)
|
public static int DeleteWebSitePointer(int siteItemId, int domainId)
|
||||||
{
|
{
|
||||||
return DeleteWebSitePointer(siteItemId, domainId, true);
|
return DeleteWebSitePointer(siteItemId, domainId, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int DeleteWebSitePointer(int siteItemId, int domainId, bool updateWebSite)
|
public static int DeleteWebSitePointer(int siteItemId, int domainId, bool updateWebSite, bool ignoreGlobalDNSRecords)
|
||||||
{
|
{
|
||||||
// check account
|
// check account
|
||||||
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
@ -895,16 +1031,29 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
TaskManager.StartTask("WEB_SITE", "DELETE_POINTER", siteItem.Name);
|
TaskManager.StartTask("WEB_SITE", "DELETE_POINTER", siteItem.Name);
|
||||||
TaskManager.ItemId = siteItemId;
|
TaskManager.ItemId = siteItemId;
|
||||||
TaskManager.WriteParameter("Domain pointer", domain.DomainName);
|
TaskManager.WriteParameter("Domain pointer", domain.DomainName);
|
||||||
|
TaskManager.WriteParameter("updateWebSite", updateWebSite.ToString());
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (zone != null)
|
if (zone != null)
|
||||||
{
|
{
|
||||||
// change DNS zone
|
// change DNS zone
|
||||||
|
List<GlobalDnsRecord> tmpDnsRecords = new List<GlobalDnsRecord>();
|
||||||
|
|
||||||
string serviceIp = (ip != null) ? ip.ExternalIP : null;
|
string serviceIp = (ip != null) ? ip.ExternalIP : null;
|
||||||
|
|
||||||
|
if (ignoreGlobalDNSRecords)
|
||||||
|
{
|
||||||
|
foreach (GlobalDnsRecord r in dnsRecords)
|
||||||
|
{
|
||||||
|
if ((r.RecordName == "[host_name]") | ((r.RecordName + (string.IsNullOrEmpty(r.RecordName) ? domain.ZoneName : "." + domain.ZoneName)) == domain.DomainName))
|
||||||
|
tmpDnsRecords.Add(r);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else tmpDnsRecords = dnsRecords;
|
||||||
|
|
||||||
List<DnsRecord> resourceRecords = DnsServerController.BuildDnsResourceRecords(
|
List<DnsRecord> resourceRecords = DnsServerController.BuildDnsResourceRecords(
|
||||||
dnsRecords, domain.DomainName, "", serviceIp);
|
tmpDnsRecords, domain.DomainName, "", serviceIp);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -918,8 +1067,6 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateWebSite)
|
|
||||||
{
|
|
||||||
// get existing web site bindings
|
// get existing web site bindings
|
||||||
WebServer web = new WebServer();
|
WebServer web = new WebServer();
|
||||||
ServiceProviderProxy.Init(web, siteItem.ServiceId);
|
ServiceProviderProxy.Init(web, siteItem.ServiceId);
|
||||||
|
@ -935,7 +1082,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
// remove host headers
|
// remove host headers
|
||||||
List<ServerBinding> domainBindings = new List<ServerBinding>();
|
List<ServerBinding> domainBindings = new List<ServerBinding>();
|
||||||
FillWebServerBindings(domainBindings, dnsRecords, "", domain.DomainName, "");
|
FillWebServerBindings(domainBindings, dnsRecords, "", domain.DomainName, "", ignoreGlobalDNSRecords);
|
||||||
|
|
||||||
// fill to remove list
|
// fill to remove list
|
||||||
List<string> headersToRemove = new List<string>();
|
List<string> headersToRemove = new List<string>();
|
||||||
|
@ -946,9 +1093,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
bindings.RemoveAll(b => { return headersToRemove.Contains(b.Host) && b.Port == "80"; } );
|
bindings.RemoveAll(b => { return headersToRemove.Contains(b.Host) && b.Port == "80"; } );
|
||||||
|
|
||||||
// update bindings
|
// update bindings
|
||||||
|
if (updateWebSite)
|
||||||
web.UpdateSiteBindings(siteItem.SiteId, bindings.ToArray());
|
web.UpdateSiteBindings(siteItem.SiteId, bindings.ToArray());
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// update domain
|
// update domain
|
||||||
domain.WebSiteId = 0;
|
domain.WebSiteId = 0;
|
||||||
|
|
|
@ -199,7 +199,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int webSiteId = WebServerController.AddWebSite(
|
int webSiteId = WebServerController.AddWebSite(
|
||||||
createdPackageId, hostName, domainId, 0, true);
|
createdPackageId, hostName, domainId, 0, true, false);
|
||||||
if (webSiteId < 0)
|
if (webSiteId < 0)
|
||||||
{
|
{
|
||||||
// rollback wizard
|
// rollback wizard
|
||||||
|
|
|
@ -5,11 +5,11 @@
|
||||||
</configSections>
|
</configSections>
|
||||||
<!-- Connection strings -->
|
<!-- Connection strings -->
|
||||||
<connectionStrings>
|
<connectionStrings>
|
||||||
<add name="EnterpriseServer" connectionString="server=HSTPROV01;database=WebsitePanelMerge;uid=WebsitePanel;pwd=aj7ep6fyhmw3b5qeth7c;" providerName="System.Data.SqlClient" />
|
<add name="EnterpriseServer" connectionString="Server=(local)\SQLExpress;Database=WebsitePanel;uid=WebsitePanel;pwd=Password12" providerName="System.Data.SqlClient" />
|
||||||
</connectionStrings>
|
</connectionStrings>
|
||||||
<appSettings>
|
<appSettings>
|
||||||
<!-- Encryption util settings -->
|
<!-- Encryption util settings -->
|
||||||
<add key="WebsitePanel.CryptoKey" value="3x7eqt7zabc5n5afs6dg" />
|
<add key="WebsitePanel.CryptoKey" value="1234567890" />
|
||||||
<!-- A1D4KDHUE83NKHddF -->
|
<!-- A1D4KDHUE83NKHddF -->
|
||||||
<add key="WebsitePanel.EncryptionEnabled" value="true" />
|
<add key="WebsitePanel.EncryptionEnabled" value="true" />
|
||||||
<!-- Web Applications -->
|
<!-- Web Applications -->
|
||||||
|
|
|
@ -670,6 +670,20 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
#region Web Platform Installer
|
#region Web Platform Installer
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public bool CheckLoadUserProfile(int serverId)
|
||||||
|
{
|
||||||
|
return OperatingSystemController.CheckLoadUserProfile(serverId);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public void EnableLoadUserProfile(int serverId)
|
||||||
|
{
|
||||||
|
OperatingSystemController.EnableLoadUserProfile(serverId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public void InitWPIFeeds(int serverId)
|
public void InitWPIFeeds(int serverId)
|
||||||
{
|
{
|
||||||
|
|
|
@ -104,9 +104,9 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public int AddWebSite(int packageId, string hostName, int domainId, int ipAddressId)
|
public int AddWebSite(int packageId, string hostName, int domainId, int ipAddressId, bool ignoreGlobalDNSZone)
|
||||||
{
|
{
|
||||||
return WebServerController.AddWebSite(packageId, hostName, domainId, ipAddressId, true);
|
return WebServerController.AddWebSite(packageId, hostName, domainId, ipAddressId, true, ignoreGlobalDNSZone);
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
|
@ -157,6 +157,18 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return WebServerController.DeleteWebSite(siteItemId);
|
return WebServerController.DeleteWebSite(siteItemId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public int SwitchWebSiteToDedicatedIP(int siteItemId, int ipAddressId)
|
||||||
|
{
|
||||||
|
return WebServerController.SwitchWebSiteToDedicatedIP(siteItemId, ipAddressId);
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public int SwitchWebSiteToSharedIP(int siteItemId)
|
||||||
|
{
|
||||||
|
return WebServerController.SwitchWebSiteToSharedIP(siteItemId);
|
||||||
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public int DeleteVirtualDirectory(int siteItemId, string vdirName)
|
public int DeleteVirtualDirectory(int siteItemId, string vdirName)
|
||||||
{
|
{
|
||||||
|
|
|
@ -119,6 +119,8 @@ namespace WebsitePanel.Providers.Web
|
||||||
|
|
||||||
|
|
||||||
// web app gallery
|
// web app gallery
|
||||||
|
bool CheckLoadUserProfile();
|
||||||
|
void EnableLoadUserProfile();
|
||||||
void InitFeeds(int UserId, string[] feeds);
|
void InitFeeds(int UserId, string[] feeds);
|
||||||
void SetResourceLanguage(int UserId, string resourceLanguage);
|
void SetResourceLanguage(int UserId, string resourceLanguage);
|
||||||
bool IsMsDeployInstalled();
|
bool IsMsDeployInstalled();
|
||||||
|
@ -153,5 +155,7 @@ namespace WebsitePanel.Providers.Web
|
||||||
ResultObject DeleteCertificate(SSLCertificate certificate, WebSite website);
|
ResultObject DeleteCertificate(SSLCertificate certificate, WebSite website);
|
||||||
SSLCertificate ImportCertificate(WebSite website);
|
SSLCertificate ImportCertificate(WebSite website);
|
||||||
bool CheckCertificate(WebSite webSite);
|
bool CheckCertificate(WebSite webSite);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,7 @@ namespace WebsitePanel.Providers.WebAppGallery
|
||||||
//SiteUserPassword = 549755813888,
|
//SiteUserPassword = 549755813888,
|
||||||
|
|
||||||
|
|
||||||
ALLKNOWN =
|
AllKnown =
|
||||||
AppHostConfig |
|
AppHostConfig |
|
||||||
AppPoolConfig |
|
AppPoolConfig |
|
||||||
Boolean |
|
Boolean |
|
||||||
|
@ -155,5 +155,21 @@ namespace WebsitePanel.Providers.WebAppGallery
|
||||||
return String.Format("{0}=\"{1}\", Tags={2}", Name, Value, WellKnownTags.ToString());
|
return String.Format("{0}=\"{1}\", Tags={2}", Name, Value, WellKnownTags.ToString());
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
public void SetWellKnownTagsFromRawString(string rawTags)
|
||||||
|
{
|
||||||
|
string[] tags = rawTags.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
DeploymentParameterWellKnownTag wellKnownTags = DeploymentParameterWellKnownTag.None;
|
||||||
|
foreach (string tag in tags)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
wellKnownTags |= (DeploymentParameterWellKnownTag)Enum.Parse(typeof(DeploymentParameterWellKnownTag), tag, true);
|
||||||
|
}
|
||||||
|
catch(Exception){}
|
||||||
|
}
|
||||||
|
|
||||||
|
WellKnownTags = wellKnownTags & DeploymentParameterWellKnownTag.AllKnown;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -954,7 +954,7 @@ namespace WebsitePanel.Providers.FTP
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
protected bool IsMsFTPInstalled()
|
protected virtual bool IsMsFTPInstalled()
|
||||||
{
|
{
|
||||||
int value = 0;
|
int value = 0;
|
||||||
RegistryKey root = Registry.LocalMachine;
|
RegistryKey root = Registry.LocalMachine;
|
||||||
|
@ -966,7 +966,7 @@ namespace WebsitePanel.Providers.FTP
|
||||||
}
|
}
|
||||||
|
|
||||||
RegistryKey ftp = root.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\ftpsvc");
|
RegistryKey ftp = root.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\ftpsvc");
|
||||||
bool res = (value == 7 || value == 8) && ftp != null;
|
bool res = (value == 7) && ftp != null;
|
||||||
if (ftp != null)
|
if (ftp != null)
|
||||||
ftp.Close();
|
ftp.Close();
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
using Microsoft.Win32;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Providers.FTP
|
||||||
|
{
|
||||||
|
public class MsFTP80 : MsFTP
|
||||||
|
{
|
||||||
|
public MsFTP80() : base()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override bool IsMsFTPInstalled()
|
||||||
|
{
|
||||||
|
int value = 0;
|
||||||
|
RegistryKey root = Registry.LocalMachine;
|
||||||
|
RegistryKey rk = root.OpenSubKey("SOFTWARE\\Microsoft\\InetStp");
|
||||||
|
if (rk != null)
|
||||||
|
{
|
||||||
|
value = (int)rk.GetValue("MajorVersion", null);
|
||||||
|
rk.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
RegistryKey ftp = root.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\ftpsvc");
|
||||||
|
bool res = (value == 8) && ftp != null;
|
||||||
|
if (ftp != null)
|
||||||
|
ftp.Close();
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool IsInstalled()
|
||||||
|
{
|
||||||
|
return IsMsFTPInstalled();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("WebsitePanel.Providers.FTP.IIs80")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyProduct("WebsitePanel.Providers.FTP.IIs80")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("587b5738-51db-4525-bcf5-60de49e89be4")]
|
|
@ -0,0 +1,65 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>WebsitePanel.Providers.FTP.IIs80</RootNamespace>
|
||||||
|
<AssemblyName>WebsitePanel.Providers.FTP.IIs80</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\WebsitePanel.Server\bin\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\WebsitePanel.Server\bin\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="..\VersionInfo.cs">
|
||||||
|
<Link>VersionInfo.cs</Link>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="MsFTP80.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\WebsitePanel.Providers.Base\WebsitePanel.Providers.Base.csproj">
|
||||||
|
<Project>{684c932a-6c75-46ac-a327-f3689d89eb42}</Project>
|
||||||
|
<Name>WebsitePanel.Providers.Base</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\WebsitePanel.Providers.FTP.IIs70\WebsitePanel.Providers.FTP.IIs70.csproj">
|
||||||
|
<Project>{a28bd694-c308-449f-8fd2-f08f3d54aba0}</Project>
|
||||||
|
<Name>WebsitePanel.Providers.FTP.IIs70</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
|
@ -230,11 +230,6 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
{
|
{
|
||||||
DeleteAuthoritativeDomainInternal(domain);
|
DeleteAuthoritativeDomainInternal(domain);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ChangeAcceptedDomainType(string domainName, ExchangeAcceptedDomainType domainType)
|
|
||||||
{
|
|
||||||
ChangeAcceptedDomainTypeInternal(domainName, domainType);
|
|
||||||
}
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Mailboxes
|
#region Mailboxes
|
||||||
|
@ -3358,7 +3353,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
//fix showInAddressBook Attribute
|
//fix showInAddressBook Attribute
|
||||||
if (addressLists.Length > 0)
|
if (addressLists.Length > 0)
|
||||||
FixShowInAddressBook(runSpace, email, addressLists);
|
FixShowInAddressBook(runSpace, email, addressLists, false);
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -3375,7 +3370,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
ExchangeLog.LogEnd("CreateDistributionListInternal");
|
ExchangeLog.LogEnd("CreateDistributionListInternal");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FixShowInAddressBook(Runspace runSpace, string accountName, string[] addressLists)
|
private void FixShowInAddressBook(Runspace runSpace, string accountName, string[] addressLists, bool HideFromAddressList)
|
||||||
{
|
{
|
||||||
Command cmd = new Command("Get-DistributionGroup");
|
Command cmd = new Command("Get-DistributionGroup");
|
||||||
cmd.Parameters.Add("Identity", accountName);
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
@ -3385,10 +3380,13 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
DirectoryEntry dlDEEntry = GetADObject(AddADPrefix(id));
|
DirectoryEntry dlDEEntry = GetADObject(AddADPrefix(id));
|
||||||
dlDEEntry.Properties["showInAddressBook"].Clear();
|
dlDEEntry.Properties["showInAddressBook"].Clear();
|
||||||
|
if (!HideFromAddressList)
|
||||||
|
{
|
||||||
foreach (string addressList in addressLists)
|
foreach (string addressList in addressLists)
|
||||||
{
|
{
|
||||||
dlDEEntry.Properties["showInAddressBook"].Add(addressList);
|
dlDEEntry.Properties["showInAddressBook"].Add(addressList);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
dlDEEntry.CommitChanges();
|
dlDEEntry.CommitChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3547,7 +3545,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addressLists.Length > 0)
|
if (addressLists.Length > 0)
|
||||||
FixShowInAddressBook(runSpace, accountName, addressLists);
|
FixShowInAddressBook(runSpace, accountName, addressLists, hideFromAddressBook);
|
||||||
|
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
@ -3617,7 +3615,14 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addressLists.Length > 0)
|
if (addressLists.Length > 0)
|
||||||
FixShowInAddressBook(runSpace, accountName, addressLists);
|
{
|
||||||
|
cmd = new Command("Get-DistributionGroup");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
PSObject distributionGroup = result[0];
|
||||||
|
|
||||||
|
FixShowInAddressBook(runSpace, accountName, addressLists, (bool)GetPSObjectProperty(distributionGroup, "HiddenFromAddressListsEnabled"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
@ -3653,7 +3658,14 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addressLists.Length > 0)
|
if (addressLists.Length > 0)
|
||||||
FixShowInAddressBook(runSpace, accountName, addressLists);
|
{
|
||||||
|
cmd = new Command("Get-DistributionGroup");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
PSObject distributionGroup = result[0];
|
||||||
|
|
||||||
|
FixShowInAddressBook(runSpace, accountName, addressLists, (bool)GetPSObjectProperty(distributionGroup, "HiddenFromAddressListsEnabled"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
@ -3725,7 +3737,14 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
if (addressLists.Length > 0)
|
if (addressLists.Length > 0)
|
||||||
FixShowInAddressBook(runSpace, accountName, addressLists);
|
{
|
||||||
|
cmd = new Command("Get-DistributionGroup");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
PSObject distributionGroup = result[0];
|
||||||
|
|
||||||
|
FixShowInAddressBook(runSpace, accountName, addressLists, (bool)GetPSObjectProperty(distributionGroup, "HiddenFromAddressListsEnabled"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
@ -3861,7 +3880,14 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
if (addressLists.Length > 0)
|
if (addressLists.Length > 0)
|
||||||
FixShowInAddressBook(runSpace, accountName, addressLists);
|
{
|
||||||
|
cmd = new Command("Get-DistributionGroup");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
Collection<PSObject> r = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
PSObject distributionGroup = r[0];
|
||||||
|
|
||||||
|
FixShowInAddressBook(runSpace, accountName, addressLists, (bool)GetPSObjectProperty(distributionGroup, "HiddenFromAddressListsEnabled"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
@ -3960,17 +3986,24 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
if (sendOnBehalfAccounts == null)
|
if (sendOnBehalfAccounts == null)
|
||||||
throw new ArgumentNullException("sendOnBehalfAccounts");
|
throw new ArgumentNullException("sendOnBehalfAccounts");
|
||||||
|
|
||||||
Runspace runspace = null;
|
Runspace runSpace = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
runspace = OpenRunspace();
|
runSpace = OpenRunspace();
|
||||||
string cn = GetDistributionListCommonName(runspace, accountName);
|
string cn = GetDistributionListCommonName(runSpace, accountName);
|
||||||
ExchangeDistributionList distributionList = GetDistributionListPermissionsInternal(organizationId, accountName, runspace);
|
ExchangeDistributionList distributionList = GetDistributionListPermissionsInternal(organizationId, accountName, runSpace);
|
||||||
SetSendAsPermissions(runspace, distributionList.SendAsAccounts, cn, sendAsAccounts);
|
SetSendAsPermissions(runSpace, distributionList.SendAsAccounts, cn, sendAsAccounts);
|
||||||
SetDistributionListSendOnBehalfAccounts(runspace, accountName, sendOnBehalfAccounts);
|
SetDistributionListSendOnBehalfAccounts(runSpace, accountName, sendOnBehalfAccounts);
|
||||||
|
|
||||||
if (addressLists.Length > 0)
|
if (addressLists.Length > 0)
|
||||||
FixShowInAddressBook(runspace, accountName, addressLists);
|
{
|
||||||
|
Command cmd = new Command("Get-DistributionGroup");
|
||||||
|
cmd.Parameters.Add("Identity", accountName);
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
PSObject distributionGroup = result[0];
|
||||||
|
|
||||||
|
FixShowInAddressBook(runSpace, accountName, addressLists, (bool)GetPSObjectProperty(distributionGroup, "HiddenFromAddressListsEnabled"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -3980,7 +4013,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
CloseRunspace(runspace);
|
CloseRunspace(runSpace);
|
||||||
}
|
}
|
||||||
|
|
||||||
ExchangeLog.LogEnd("SetDistributionListPermissionsInternal");
|
ExchangeLog.LogEnd("SetDistributionListPermissionsInternal");
|
||||||
|
@ -5921,31 +5954,6 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
ExchangeLog.LogEnd("CreateAuthoritativeDomainInternal");
|
ExchangeLog.LogEnd("CreateAuthoritativeDomainInternal");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ChangeAcceptedDomainTypeInternal(string domainName, ExchangeAcceptedDomainType domainType)
|
|
||||||
{
|
|
||||||
ExchangeLog.LogStart("ChangeAcceptedDomainType");
|
|
||||||
|
|
||||||
Runspace runSpace = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
runSpace = OpenRunspace();
|
|
||||||
|
|
||||||
SetAcceptedDomainType(runSpace, domainName,domainType);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
ExchangeLog.LogError("ChangeAcceptedDomainType", ex);
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
|
|
||||||
CloseRunspace(runSpace);
|
|
||||||
}
|
|
||||||
|
|
||||||
ExchangeLog.LogEnd("ChangeAcceptedDomainType");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void DeleteAcceptedDomain(string domainName)
|
private void DeleteAcceptedDomain(string domainName)
|
||||||
{
|
{
|
||||||
ExchangeLog.LogStart("DeleteAcceptedDomain");
|
ExchangeLog.LogStart("DeleteAcceptedDomain");
|
||||||
|
@ -6010,17 +6018,6 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
ExchangeLog.LogEnd("RemoveAcceptedDomain");
|
ExchangeLog.LogEnd("RemoveAcceptedDomain");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetAcceptedDomainType(Runspace runSpace, string id, ExchangeAcceptedDomainType domainType)
|
|
||||||
{
|
|
||||||
ExchangeLog.LogStart("SetAcceptedDomainType");
|
|
||||||
Command cmd = new Command("Set-AcceptedDomain");
|
|
||||||
cmd.Parameters.Add("Identity", id);
|
|
||||||
cmd.Parameters.Add("DomainType", domainType.ToString());
|
|
||||||
cmd.Parameters.Add("Confirm", false);
|
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
|
||||||
ExchangeLog.LogEnd("SetAcceptedDomainType");
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region ActiveSync
|
#region ActiveSync
|
||||||
|
|
|
@ -3477,7 +3477,7 @@ namespace WebsitePanel.Providers.Web
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public new bool IsIISInstalled()
|
public override bool IsIISInstalled()
|
||||||
{
|
{
|
||||||
int value = 0;
|
int value = 0;
|
||||||
RegistryKey root = Registry.LocalMachine;
|
RegistryKey root = Registry.LocalMachine;
|
||||||
|
@ -3488,7 +3488,7 @@ namespace WebsitePanel.Providers.Web
|
||||||
rk.Close();
|
rk.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
return value == 7 || value == 8;
|
return value == 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool IsInstalled()
|
public override bool IsInstalled()
|
||||||
|
@ -4042,6 +4042,26 @@ namespace WebsitePanel.Providers.Web
|
||||||
|
|
||||||
// moved down to IIs60
|
// moved down to IIs60
|
||||||
|
|
||||||
|
override public bool CheckLoadUserProfile()
|
||||||
|
{
|
||||||
|
using (var srvman = new ServerManager())
|
||||||
|
{
|
||||||
|
return srvman.ApplicationPools["WebsitePanel Server"].ProcessModel.LoadUserProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
override public void EnableLoadUserProfile()
|
||||||
|
{
|
||||||
|
using (var srvman = new ServerManager())
|
||||||
|
{
|
||||||
|
srvman.ApplicationPools["WebsitePanel Server"].ProcessModel.LoadUserProfile = true;
|
||||||
|
// save changes
|
||||||
|
srvman.CommitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,13 +19,3 @@ using System.Runtime.InteropServices;
|
||||||
|
|
||||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
[assembly: Guid("0eb18093-bb95-406a-ab78-a2e45f4cb972")]
|
[assembly: Guid("0eb18093-bb95-406a-ab78-a2e45f4cb972")]
|
||||||
|
|
||||||
// Version information for an assembly consists of the following four values:
|
|
||||||
//
|
|
||||||
// Major Version
|
|
||||||
// Minor Version
|
|
||||||
// Build Number
|
|
||||||
// Revision
|
|
||||||
//
|
|
||||||
// You can specify all the values or you can default the Revision and Build Numbers
|
|
||||||
// by using the '*' as shown below:
|
|
|
@ -3368,7 +3368,7 @@ namespace WebsitePanel.Providers.Web
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public bool IsIISInstalled()
|
public virtual bool IsIISInstalled()
|
||||||
{
|
{
|
||||||
int value = 0;
|
int value = 0;
|
||||||
RegistryKey root = Registry.LocalMachine;
|
RegistryKey root = Registry.LocalMachine;
|
||||||
|
@ -3394,6 +3394,18 @@ namespace WebsitePanel.Providers.Web
|
||||||
private const string WPI_INSTANCE_VIEWER = "viewer";
|
private const string WPI_INSTANCE_VIEWER = "viewer";
|
||||||
private const string WPI_INSTANCE_INSTALLER = "installer";
|
private const string WPI_INSTANCE_INSTALLER = "installer";
|
||||||
|
|
||||||
|
virtual public bool CheckLoadUserProfile()
|
||||||
|
{
|
||||||
|
throw new NotImplementedException("LoadUserProfile option valid only on IIS7 or higer");
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual public void EnableLoadUserProfile()
|
||||||
|
{
|
||||||
|
throw new NotImplementedException("LoadUserProfile option valid only on IIS7 or higer");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void InitFeeds(int UserId, string[] feeds)
|
public void InitFeeds(int UserId, string[] feeds)
|
||||||
{
|
{
|
||||||
//need to call InitFeeds() before any operation with WPIApplicationGallery()
|
//need to call InitFeeds() before any operation with WPIApplicationGallery()
|
||||||
|
@ -3667,5 +3679,10 @@ namespace WebsitePanel.Providers.Web
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,7 @@ using System.Web;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations;
|
using Microsoft.Practices.EnterpriseLibrary.Caching.Expirations;
|
||||||
using DeploymentParameter = WebsitePanel.Providers.WebAppGallery.DeploymentParameter;
|
using DeploymentParameter = WebsitePanel.Providers.WebAppGallery.DeploymentParameter;
|
||||||
|
using DeploymentParameterWPI = Microsoft.Web.PlatformInstaller.DeploymentParameter;
|
||||||
|
|
||||||
namespace WebsitePanel.Providers.Web.WPIWebApplicationGallery
|
namespace WebsitePanel.Providers.Web.WPIWebApplicationGallery
|
||||||
{
|
{
|
||||||
|
@ -268,10 +269,10 @@ namespace WebsitePanel.Providers.Web.WPIWebApplicationGallery
|
||||||
|
|
||||||
Product product = wpi.GetProduct(id);
|
Product product = wpi.GetProduct(id);
|
||||||
List<DeploymentParameter> deploymentParameters = new List<DeploymentParameter>();
|
List<DeploymentParameter> deploymentParameters = new List<DeploymentParameter>();
|
||||||
IList<DeclaredParameter> appDecalredParameters = wpi.GetAppDecalredParameters(id);
|
IList<DeploymentParameterWPI> appDeploymentWPIParameters = wpi.GetAppDecalredParameters(id);
|
||||||
foreach (DeclaredParameter declaredParameter in appDecalredParameters)
|
foreach (DeploymentParameterWPI deploymentParameter in appDeploymentWPIParameters)
|
||||||
{
|
{
|
||||||
deploymentParameters.Add(MakeDeploymentParameterFromDecalredParameter(declaredParameter));
|
deploymentParameters.Add(MakeDeploymentParameterFromDecalredParameter(deploymentParameter));
|
||||||
}
|
}
|
||||||
|
|
||||||
return deploymentParameters;
|
return deploymentParameters;
|
||||||
|
@ -398,28 +399,41 @@ namespace WebsitePanel.Providers.Web.WPIWebApplicationGallery
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static DeploymentParameter MakeDeploymentParameterFromDecalredParameter(DeclaredParameter d)
|
protected static DeploymentParameter MakeDeploymentParameterFromDecalredParameter(DeploymentParameterWPI d)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
DeploymentParameter r = new DeploymentParameter();
|
DeploymentParameter r = new DeploymentParameter();
|
||||||
r.Name = d.Name;
|
r.Name = d.Name;
|
||||||
r.FriendlyName = d.FriendlyName;
|
r.FriendlyName = d.FriendlyName;
|
||||||
r.DefaultValue = d.DefaultValue;
|
r.DefaultValue = d.DefaultValue;
|
||||||
r.Description = d.Description;
|
r.Description = d.Description;
|
||||||
|
|
||||||
#pragma warning disable 612,618
|
r.SetWellKnownTagsFromRawString(d.RawTags);
|
||||||
r.WellKnownTags = DeploymentParameterWellKnownTag.ALLKNOWN & (DeploymentParameterWellKnownTag) d.Tags;
|
if (!string.IsNullOrEmpty(d.ValidationString))
|
||||||
if (null != d.Validation)
|
|
||||||
{
|
{
|
||||||
r.ValidationKind = (DeploymentParameterValidationKind) d.Validation.Kind;
|
// synchronized with Microsoft.Web.Deployment.DeploymentSyncParameterValidationKind
|
||||||
r.ValidationString = d.Validation.ValidationString;
|
if (d.HasValidation((int)DeploymentParameterValidationKind.AllowEmpty))
|
||||||
|
{
|
||||||
|
r.ValidationKind |= DeploymentParameterValidationKind.AllowEmpty;
|
||||||
|
}
|
||||||
|
if (d.HasValidation((int)DeploymentParameterValidationKind.RegularExpression))
|
||||||
|
{
|
||||||
|
r.ValidationKind |= DeploymentParameterValidationKind.RegularExpression;
|
||||||
|
}
|
||||||
|
if (d.HasValidation((int)DeploymentParameterValidationKind.Enumeration))
|
||||||
|
{
|
||||||
|
r.ValidationKind |= DeploymentParameterValidationKind.Enumeration;
|
||||||
|
}
|
||||||
|
if (d.HasValidation((int)DeploymentParameterValidationKind.Boolean))
|
||||||
|
{
|
||||||
|
r.ValidationKind |= DeploymentParameterValidationKind.Boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
r.ValidationString = d.ValidationString;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
r.ValidationKind = DeploymentParameterValidationKind.None;
|
r.ValidationKind = DeploymentParameterValidationKind.None;
|
||||||
}
|
}
|
||||||
#pragma warning restore 612,618
|
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,11 +77,6 @@
|
||||||
<HintPath>..\..\Lib\References\Microsoft\Microsoft.Web.PlatformInstaller.dll</HintPath>
|
<HintPath>..\..\Lib\References\Microsoft\Microsoft.Web.PlatformInstaller.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.Web.PlatformInstaller.WebDeployShim, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\Lib\References\Microsoft\Microsoft.Web.PlatformInstaller.WebDeployShim.dll</HintPath>
|
|
||||||
<Private>True</Private>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.DirectoryServices" />
|
<Reference Include="System.DirectoryServices" />
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
using Microsoft.Win32;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Providers.Web
|
||||||
|
{
|
||||||
|
public class IIs80 : IIs70, IWebServer
|
||||||
|
{
|
||||||
|
public IIs80() : base()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool IsIISInstalled()
|
||||||
|
{
|
||||||
|
int value = 0;
|
||||||
|
RegistryKey root = Registry.LocalMachine;
|
||||||
|
RegistryKey rk = root.OpenSubKey("SOFTWARE\\Microsoft\\InetStp");
|
||||||
|
if (rk != null)
|
||||||
|
{
|
||||||
|
value = (int)rk.GetValue("MajorVersion", null);
|
||||||
|
rk.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
return value == 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool IsInstalled()
|
||||||
|
{
|
||||||
|
return IsIISInstalled();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("WebsitePanel.Providers.Web.IIs80")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyProduct("WebsitePanel.Providers.Web.IIs80")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("b0305c67-ead3-4d69-a0d8-548f6d0f705b")]
|
|
@ -0,0 +1,69 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{6E348968-461D-45A1-B235-4F552947B9F1}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>WebsitePanel.Providers.Web</RootNamespace>
|
||||||
|
<AssemblyName>WebsitePanel.Providers.Web.IIs80</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>..\WebsitePanel.Server\bin\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>..\WebsitePanel.Server\bin\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="..\VersionInfo.cs">
|
||||||
|
<Link>VersionInfo.cs</Link>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="IIs80.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\WebsitePanel.Providers.Base\WebsitePanel.Providers.Base.csproj">
|
||||||
|
<Project>{684c932a-6c75-46ac-a327-f3689d89eb42}</Project>
|
||||||
|
<Name>WebsitePanel.Providers.Base</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\WebsitePanel.Providers.Web.IIs60\WebsitePanel.Providers.Web.IIs60.csproj">
|
||||||
|
<Project>{9be0317d-e42e-4ff6-9a87-8c801f046ea1}</Project>
|
||||||
|
<Name>WebsitePanel.Providers.Web.IIs60</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\WebsitePanel.Providers.Web.IIS70\WebsitePanel.Providers.Web.IIs70.csproj">
|
||||||
|
<Project>{1b9dce85-c664-49fc-b6e1-86c63cab88d1}</Project>
|
||||||
|
<Name>WebsitePanel.Providers.Web.IIs70</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
<Target Name="BeforeBuild">
|
||||||
|
</Target>
|
||||||
|
<Target Name="AfterBuild">
|
||||||
|
</Target>
|
||||||
|
-->
|
||||||
|
</Project>
|
|
@ -1,8 +1,3 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
//
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
// - Redistributions of source code must retain the above copyright notice, this
|
||||||
// list of conditions and the following disclaimer.
|
// list of conditions and the following disclaimer.
|
||||||
|
@ -52,6 +47,7 @@ namespace WebsitePanel.Providers.Web
|
||||||
using WebsitePanel.Providers.Common;
|
using WebsitePanel.Providers.Common;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
@ -180,6 +176,10 @@ namespace WebsitePanel.Providers.Web
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback DeleteHeliconApeGroupOperationCompleted;
|
private System.Threading.SendOrPostCallback DeleteHeliconApeGroupOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback CheckLoadUserProfileOperationCompleted;
|
||||||
|
|
||||||
|
private System.Threading.SendOrPostCallback EnableLoadUserProfileOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback InitFeedsOperationCompleted;
|
private System.Threading.SendOrPostCallback InitFeedsOperationCompleted;
|
||||||
|
|
||||||
private System.Threading.SendOrPostCallback SetResourceLanguageOperationCompleted;
|
private System.Threading.SendOrPostCallback SetResourceLanguageOperationCompleted;
|
||||||
|
@ -416,6 +416,12 @@ namespace WebsitePanel.Providers.Web
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event DeleteHeliconApeGroupCompletedEventHandler DeleteHeliconApeGroupCompleted;
|
public event DeleteHeliconApeGroupCompletedEventHandler DeleteHeliconApeGroupCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event CheckLoadUserProfileCompletedEventHandler CheckLoadUserProfileCompleted;
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public event EnableLoadUserProfileCompletedEventHandler EnableLoadUserProfileCompleted;
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public event InitFeedsCompletedEventHandler InitFeedsCompleted;
|
public event InitFeedsCompletedEventHandler InitFeedsCompleted;
|
||||||
|
|
||||||
|
@ -3005,6 +3011,82 @@ namespace WebsitePanel.Providers.Web
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/CheckLoadUserProfile", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public bool CheckLoadUserProfile() {
|
||||||
|
object[] results = this.Invoke("CheckLoadUserProfile", new object[0]);
|
||||||
|
return ((bool)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginCheckLoadUserProfile(System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("CheckLoadUserProfile", new object[0], callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public bool EndCheckLoadUserProfile(System.IAsyncResult asyncResult) {
|
||||||
|
object[] results = this.EndInvoke(asyncResult);
|
||||||
|
return ((bool)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void CheckLoadUserProfileAsync() {
|
||||||
|
this.CheckLoadUserProfileAsync(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void CheckLoadUserProfileAsync(object userState) {
|
||||||
|
if ((this.CheckLoadUserProfileOperationCompleted == null)) {
|
||||||
|
this.CheckLoadUserProfileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCheckLoadUserProfileOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("CheckLoadUserProfile", new object[0], this.CheckLoadUserProfileOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnCheckLoadUserProfileOperationCompleted(object arg) {
|
||||||
|
if ((this.CheckLoadUserProfileCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.CheckLoadUserProfileCompleted(this, new CheckLoadUserProfileCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/EnableLoadUserProfile", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public void EnableLoadUserProfile() {
|
||||||
|
this.Invoke("EnableLoadUserProfile", new object[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public System.IAsyncResult BeginEnableLoadUserProfile(System.AsyncCallback callback, object asyncState) {
|
||||||
|
return this.BeginInvoke("EnableLoadUserProfile", new object[0], callback, asyncState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EndEnableLoadUserProfile(System.IAsyncResult asyncResult) {
|
||||||
|
this.EndInvoke(asyncResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EnableLoadUserProfileAsync() {
|
||||||
|
this.EnableLoadUserProfileAsync(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public void EnableLoadUserProfileAsync(object userState) {
|
||||||
|
if ((this.EnableLoadUserProfileOperationCompleted == null)) {
|
||||||
|
this.EnableLoadUserProfileOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEnableLoadUserProfileOperationCompleted);
|
||||||
|
}
|
||||||
|
this.InvokeAsync("EnableLoadUserProfile", new object[0], this.EnableLoadUserProfileOperationCompleted, userState);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnEnableLoadUserProfileOperationCompleted(object arg) {
|
||||||
|
if ((this.EnableLoadUserProfileCompleted != null)) {
|
||||||
|
System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
|
||||||
|
this.EnableLoadUserProfileCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/InitFeeds", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/InitFeeds", RequestNamespace="http://smbsaas/websitepanel/server/", ResponseNamespace="http://smbsaas/websitepanel/server/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
@ -5064,6 +5146,36 @@ namespace WebsitePanel.Providers.Web
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
public delegate void DeleteHeliconApeGroupCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
public delegate void DeleteHeliconApeGroupCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
public delegate void CheckLoadUserProfileCompletedEventHandler(object sender, CheckLoadUserProfileCompletedEventArgs e);
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
[System.Diagnostics.DebuggerStepThroughAttribute()]
|
||||||
|
[System.ComponentModel.DesignerCategoryAttribute("code")]
|
||||||
|
public partial class CheckLoadUserProfileCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
|
||||||
|
|
||||||
|
private object[] results;
|
||||||
|
|
||||||
|
internal CheckLoadUserProfileCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
|
||||||
|
base(exception, cancelled, userState) {
|
||||||
|
this.results = results;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
public bool Result {
|
||||||
|
get {
|
||||||
|
this.RaiseExceptionIfNecessary();
|
||||||
|
return ((bool)(this.results[0]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
|
public delegate void EnableLoadUserProfileCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
|
||||||
public delegate void InitFeedsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
public delegate void InitFeedsCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 2010
|
# Visual Studio 2012
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Caching Application Block", "Caching Application Block", "{C8E6F2E4-A5B8-486A-A56E-92D864524682}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Caching Application Block", "Caching Application Block", "{C8E6F2E4-A5B8-486A-A56E-92D864524682}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
Bin\Microsoft.Practices.EnterpriseLibrary.Common.dll = Bin\Microsoft.Practices.EnterpriseLibrary.Common.dll
|
Bin\Microsoft.Practices.EnterpriseLibrary.Common.dll = Bin\Microsoft.Practices.EnterpriseLibrary.Common.dll
|
||||||
|
@ -107,6 +107,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Mail
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.OS.Windows2012", "WebsitePanel.Providers.OS.Windows2012\WebsitePanel.Providers.OS.Windows2012.csproj", "{27130BBB-76FA-411E-8B4D-51CD4DC821AF}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.OS.Windows2012", "WebsitePanel.Providers.OS.Windows2012\WebsitePanel.Providers.OS.Windows2012.csproj", "{27130BBB-76FA-411E-8B4D-51CD4DC821AF}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.Web.IIs80", "WebsitePanel.Providers.Web.IIs80\WebsitePanel.Providers.Web.IIs80.csproj", "{6E348968-461D-45A1-B235-4F552947B9F1}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.Providers.FTP.IIs80", "WebsitePanel.Providers.FTP.IIs80\WebsitePanel.Providers.FTP.IIs80.csproj", "{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
@ -587,6 +591,26 @@ Global
|
||||||
{27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
{27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|x86.ActiveCfg = Release|Any CPU
|
{27130BBB-76FA-411E-8B4D-51CD4DC821AF}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{6E348968-461D-45A1-B235-4F552947B9F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{6E348968-461D-45A1-B235-4F552947B9F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{6E348968-461D-45A1-B235-4F552947B9F1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
|
{6E348968-461D-45A1-B235-4F552947B9F1}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
|
{6E348968-461D-45A1-B235-4F552947B9F1}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{6E348968-461D-45A1-B235-4F552947B9F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{6E348968-461D-45A1-B235-4F552947B9F1}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{6E348968-461D-45A1-B235-4F552947B9F1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{6E348968-461D-45A1-B235-4F552947B9F1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{6E348968-461D-45A1-B235-4F552947B9F1}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{D73CCF4C-9CFF-4D61-9030-34DCAF0C50D6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
|
@ -38,6 +38,7 @@ using System.Threading;
|
||||||
using Microsoft.Web.Deployment;
|
using Microsoft.Web.Deployment;
|
||||||
using Microsoft.Web.PlatformInstaller;
|
using Microsoft.Web.PlatformInstaller;
|
||||||
using Installer = Microsoft.Web.PlatformInstaller.Installer;
|
using Installer = Microsoft.Web.PlatformInstaller.Installer;
|
||||||
|
using DeploymentParameterWPI = Microsoft.Web.PlatformInstaller.DeploymentParameter;
|
||||||
|
|
||||||
namespace WebsitePanel.Server.Code
|
namespace WebsitePanel.Server.Code
|
||||||
{
|
{
|
||||||
|
@ -453,11 +454,11 @@ namespace WebsitePanel.Server.Code
|
||||||
return products;
|
return products;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IList<DeclaredParameter> GetAppDecalredParameters(string productId)
|
public IList<DeploymentParameterWPI> GetAppDecalredParameters(string productId)
|
||||||
{
|
{
|
||||||
Product app = _productManager.GetProduct(productId);
|
Product app = _productManager.GetProduct(productId);
|
||||||
Installer appInstaller = app.GetInstaller(GetLanguage(null));
|
Installer appInstaller = app.GetInstaller(GetLanguage(null));
|
||||||
return appInstaller.MSDeployPackage.DeclaredParameters;
|
return appInstaller.MSDeployPackage.DeploymentParameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool InstallApplication(
|
public bool InstallApplication(
|
||||||
|
@ -501,7 +502,7 @@ namespace WebsitePanel.Server.Code
|
||||||
DeploymentWellKnownTag dbTag = (DeploymentWellKnownTag)GetDbTag(updatedValues);
|
DeploymentWellKnownTag dbTag = (DeploymentWellKnownTag)GetDbTag(updatedValues);
|
||||||
|
|
||||||
// remove parameters with alien db tags
|
// remove parameters with alien db tags
|
||||||
foreach (DeclaredParameter parameter in appInstaller.MSDeployPackage.DeclaredParameters)
|
foreach (DeploymentParameterWPI parameter in appInstaller.MSDeployPackage.DeploymentParameters)
|
||||||
{
|
{
|
||||||
if (IsAlienDbTaggedParameter(dbTag, parameter))
|
if (IsAlienDbTaggedParameter(dbTag, parameter))
|
||||||
{
|
{
|
||||||
|
@ -726,13 +727,16 @@ namespace WebsitePanel.Server.Code
|
||||||
return DeploymentWellKnownTag.None;
|
return DeploymentWellKnownTag.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsAlienDbTaggedParameter(DeploymentWellKnownTag dbTag, DeclaredParameter parameter)
|
private static bool IsAlienDbTaggedParameter(DeploymentWellKnownTag dbTag, DeploymentParameterWPI parameter)
|
||||||
{
|
{
|
||||||
|
return parameter.HasTags((long)databaseEngineTags) && !parameter.HasTags((long)dbTag);
|
||||||
|
/*
|
||||||
#pragma warning disable 612,618
|
#pragma warning disable 612,618
|
||||||
return (parameter.Tags & databaseEngineTags) != DeploymentWellKnownTag.None
|
return (parameter.Tags & databaseEngineTags) != DeploymentWellKnownTag.None
|
||||||
&&
|
&&
|
||||||
(parameter.Tags & dbTag) == DeploymentWellKnownTag.None;
|
(parameter.Tags & dbTag) == DeploymentWellKnownTag.None;
|
||||||
#pragma warning restore 612,618
|
#pragma warning restore 612,618
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void RemoveUnusedProviders(MSDeployPackage msDeployPackage, DeploymentWellKnownTag dbTag)
|
private static void RemoveUnusedProviders(MSDeployPackage msDeployPackage, DeploymentWellKnownTag dbTag)
|
||||||
|
|
|
@ -1061,6 +1061,42 @@ namespace WebsitePanel.Server
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Web Application Gallery
|
#region Web Application Gallery
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public bool CheckLoadUserProfile()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("CheckLoadUserProfile");
|
||||||
|
|
||||||
|
return WebProvider.CheckLoadUserProfile();
|
||||||
|
|
||||||
|
Log.WriteEnd("CheckLoadUserProfile");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError("CheckLoadUserProfile", ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public void EnableLoadUserProfile()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("EnableLoadUserProfile");
|
||||||
|
|
||||||
|
WebProvider.EnableLoadUserProfile();
|
||||||
|
|
||||||
|
Log.WriteEnd("EnableLoadUserProfile");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError("EnableLoadUserProfile", ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void InitFeeds(int UserId, string[] feeds)
|
public void InitFeeds(int UserId, string[] feeds)
|
||||||
{
|
{
|
||||||
|
|
|
@ -876,6 +876,9 @@
|
||||||
<data name="Error.WPI_LOAD_FEED" xml:space="preserve">
|
<data name="Error.WPI_LOAD_FEED" xml:space="preserve">
|
||||||
<value>Error loading feeds. Please check system settings</value>
|
<value>Error loading feeds. Please check system settings</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Error.WPI_CHECK_LOAD_USER_PROFILE" xml:space="preserve">
|
||||||
|
<value>Error checking 'Load user profile' application pool setting.</value>
|
||||||
|
</data>
|
||||||
<data name="Error.SPACE_LETTER_GET" xml:space="preserve">
|
<data name="Error.SPACE_LETTER_GET" xml:space="preserve">
|
||||||
<value>Error building hosting space summary letter</value>
|
<value>Error building hosting space summary letter</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -5125,9 +5128,6 @@
|
||||||
<data name="ResourceGroup.Lync" xml:space="preserve">
|
<data name="ResourceGroup.Lync" xml:space="preserve">
|
||||||
<value>Lync Server</value>
|
<value>Lync Server</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Success.UPDATE_LYNC_USER" xml:space="preserve">
|
|
||||||
<value>General Lync User settings have been successfully updated.</value>
|
|
||||||
</data>
|
|
||||||
<data name="Warning.CREATE_LYNC_USER" xml:space="preserve">
|
<data name="Warning.CREATE_LYNC_USER" xml:space="preserve">
|
||||||
<value>Lync User has been successfully created but the following errors have been occured:</value>
|
<value>Lync User has been successfully created but the following errors have been occured:</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -5191,14 +5191,12 @@
|
||||||
<data name="Success.EXCHANGE_STAMPMAILBOXES" xml:space="preserve">
|
<data name="Success.EXCHANGE_STAMPMAILBOXES" xml:space="preserve">
|
||||||
<value>Succesfully stamp mailboxes</value>
|
<value>Succesfully stamp mailboxes</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<data name="Error.EXCHANGE_UPDATEPLANS" xml:space="preserve">
|
<data name="Error.EXCHANGE_UPDATEPLANS" xml:space="preserve">
|
||||||
<value>Mailbox plan update failed</value>
|
<value>Mailbox plan update failed</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Success.EXCHANGE_UPDATEPLANS" xml:space="preserve">
|
<data name="Success.EXCHANGE_UPDATEPLANS" xml:space="preserve">
|
||||||
<value>Mailbox plan updated</value>
|
<value>Mailbox plan updated</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<data name="Error.LYNC_APPLYPLANTEMPLATE" xml:space="preserve">
|
<data name="Error.LYNC_APPLYPLANTEMPLATE" xml:space="preserve">
|
||||||
<value>Failed to apply plans template</value>
|
<value>Failed to apply plans template</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -5208,7 +5206,16 @@
|
||||||
<data name="Success.REQUEST_COMPLETED_SUCCESFULLY" xml:space="preserve">
|
<data name="Success.REQUEST_COMPLETED_SUCCESFULLY" xml:space="preserve">
|
||||||
<value>Request Completed Succesfully</value>
|
<value>Request Completed Succesfully</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Error.WEB_SWITCH_TO_DEDICATED_IP" xml:space="preserve">
|
||||||
|
<value>Error updating web site to dedicated IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="Error.WEB_SWITCH_TO_SHARED_IP" xml:space="preserve">
|
||||||
|
<value>Error updating web site to shared IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="Success.WEB_SWITCH_TO_DEDICATED_IP" xml:space="preserve">
|
||||||
|
<value>Web site has been updated to dedicated IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="Success.WEB_SWITCH_TO_SHARED_IP" xml:space="preserve">
|
||||||
|
<value>Web site has been updated to shared IP</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -151,6 +151,6 @@
|
||||||
<value>Status</value>
|
<value>Status</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
||||||
<value>Subscriber Number:</value>
|
<value>Account Number:</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -160,7 +160,7 @@
|
||||||
<value>Secondary E-Mail:</value>
|
<value>Secondary E-Mail:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lblSubscriberNumber.Text" xml:space="preserve">
|
<data name="lblSubscriberNumber.Text" xml:space="preserve">
|
||||||
<value>Subscriber Number:</value>
|
<value>Account Number:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lblUsername.Text" xml:space="preserve">
|
<data name="lblUsername.Text" xml:space="preserve">
|
||||||
<value>User name:</value>
|
<value>User name:</value>
|
||||||
|
|
|
@ -202,6 +202,6 @@
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lblSubscriberNumber" xml:space="preserve">
|
<data name="lblSubscriberNumber" xml:space="preserve">
|
||||||
<value>Subscriber Number:</value>
|
<value>Account Number:</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnAdd.Text" xml:space="preserve">
|
<data name="btnAdd.Text" xml:space="preserve">
|
||||||
<value>Add Pointer</value>
|
<value>Add Pointer</value>
|
||||||
|
@ -124,6 +124,6 @@
|
||||||
<value>Cancel</value>
|
<value>Cancel</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lblDomainName.Text" xml:space="preserve">
|
<data name="lblDomainName.Text" xml:space="preserve">
|
||||||
<value>Domain Alias:</value>
|
<value>Web Site Pointer:</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnAdd.OnClientClick" xml:space="preserve">
|
<data name="btnAdd.OnClientClick" xml:space="preserve">
|
||||||
<value>ShowProgressDialog('Creating web site...');</value>
|
<value>ShowProgressDialog('Creating web site...');</value>
|
||||||
|
@ -126,11 +126,14 @@
|
||||||
<data name="btnCancel.Text" xml:space="preserve">
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
<value>Cancel</value>
|
<value>Cancel</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="chkIgnoreGlobalDNSRecords.Text" xml:space="preserve">
|
||||||
|
<value>Ignore Zone Template</value>
|
||||||
|
</data>
|
||||||
<data name="lblAspNetVersion.Text" xml:space="preserve">
|
<data name="lblAspNetVersion.Text" xml:space="preserve">
|
||||||
<value>ASP.NET Version:</value>
|
<value>ASP.NET Version:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lblDomainName.Text" xml:space="preserve">
|
<data name="lblDomainName.Text" xml:space="preserve">
|
||||||
<value>Domain Name:</value>
|
<value>Site:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lblIPAddress.Text" xml:space="preserve">
|
<data name="lblIPAddress.Text" xml:space="preserve">
|
||||||
<value>IP address:</value>
|
<value>IP address:</value>
|
||||||
|
@ -138,6 +141,9 @@
|
||||||
<data name="lblIPHelp.Text" xml:space="preserve">
|
<data name="lblIPHelp.Text" xml:space="preserve">
|
||||||
<value>If you need your web site to be accessible via dedicated IP address or you are planning to enable SSL for your site you should choose "Dedicated IP" option; otherwise leave this settings by default. In order to create IP-based site you need to purchase IP address from your host.</value>
|
<value>If you need your web site to be accessible via dedicated IP address or you are planning to enable SSL for your site you should choose "Dedicated IP" option; otherwise leave this settings by default. In order to create IP-based site you need to purchase IP address from your host.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="lblIPHelp2.Text" xml:space="preserve">
|
||||||
|
<value>Note: A Zone Template is often defined by your host and contains additional Web Site Pointers to create when creating a new Web Site. Static record definitions such as 'www' conflicts when creating an additional Web Site in the same Domain. </p>Check this option to ignore the Zone Template and create the new Web Site with this Web Site Pointer only. </value>
|
||||||
|
</data>
|
||||||
<data name="rbDedicatedIP.Text" xml:space="preserve">
|
<data name="rbDedicatedIP.Text" xml:space="preserve">
|
||||||
<value>Dedicated</value>
|
<value>Dedicated</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -112,10 +112,10 @@
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="btnAddFolder.Text" xml:space="preserve">
|
<data name="btnAddFolder.Text" xml:space="preserve">
|
||||||
<value>Add Folder</value>
|
<value>Add Folder</value>
|
||||||
|
@ -459,4 +459,31 @@ To connect to web site management service please use username and password provi
|
||||||
<data name="WebPublishing.ChooseFtpAccountPrompt" xml:space="preserve">
|
<data name="WebPublishing.ChooseFtpAccountPrompt" xml:space="preserve">
|
||||||
<value>Choose FTP account...</value>
|
<value>Choose FTP account...</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="cmdApplyDedicatedIP.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Applying changes...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdApplyDedicatedIP.Text" xml:space="preserve">
|
||||||
|
<value>Apply</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdCancelDedicatedIP.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdSwitchToDedicatedIP.Text" xml:space="preserve">
|
||||||
|
<value>Switch to dedicated IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdSwitchToSharedIP.OnClientClick" xml:space="preserve">
|
||||||
|
<value>if(!confirm('Do you really want to switch this web site to shared IP?')) return false;ShowProgressDialog('Applying changes...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdSwitchToSharedIP.Text" xml:space="preserve">
|
||||||
|
<value>Switch to shared IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="locDedicatedIPAddress.Text" xml:space="preserve">
|
||||||
|
<value>IP address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locSelectIPAddress.Text" xml:space="preserve">
|
||||||
|
<value>Select IP address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locSharedIPAddress.Text" xml:space="preserve">
|
||||||
|
<value>IP address: Shared</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -157,7 +157,7 @@
|
||||||
<value>Password: *</value>
|
<value>Password: *</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
||||||
<value>Subscriber Number: *</value>
|
<value>Account Number: *</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
<value>Create New Mailbox</value>
|
<value>Create New Mailbox</value>
|
||||||
|
@ -187,7 +187,7 @@
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="valRequireSubscriberNumber.ErrorMessage" xml:space="preserve">
|
<data name="valRequireSubscriberNumber.ErrorMessage" xml:space="preserve">
|
||||||
<value>Enter Subscriber Number</value>
|
<value>Enter Account Number</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="valRequireSubscriberNumber.Text" xml:space="preserve">
|
<data name="valRequireSubscriberNumber.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
|
|
|
@ -186,4 +186,10 @@
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
<value>Storage Usage</value>
|
<value>Storage Usage</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="locAverageMailboxSize.Text" xml:space="preserve">
|
||||||
|
<value>Avg. Mailbox Size (MB):</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTotalMailboxes.Text" xml:space="preserve">
|
||||||
|
<value>Total Mailboxes:</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -145,7 +145,7 @@
|
||||||
<value>Password: *</value>
|
<value>Password: *</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
||||||
<value>Subscriber Number: *</value>
|
<value>Account Number: *</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
<value>Create New User</value>
|
<value>Create New User</value>
|
||||||
|
@ -160,7 +160,7 @@
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="valRequireSubscriberNumber.ErrorMessage" xml:space="preserve">
|
<data name="valRequireSubscriberNumber.ErrorMessage" xml:space="preserve">
|
||||||
<value>Enter Subscriber Number</value>
|
<value>Enter Account Number</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="valRequireSubscriberNumber.Text" xml:space="preserve">
|
<data name="valRequireSubscriberNumber.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
|
|
|
@ -201,7 +201,7 @@
|
||||||
<value>State/Province:</value>
|
<value>State/Province:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
||||||
<value>Subscriber Number:</value>
|
<value>Account Number:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
<value>Edit User</value>
|
<value>Edit User</value>
|
||||||
|
|
|
@ -142,7 +142,7 @@
|
||||||
<value>E-mail Address</value>
|
<value>E-mail Address</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ddlSearchColumnSubscriberNumber" xml:space="preserve">
|
<data name="ddlSearchColumnSubscriberNumber" xml:space="preserve">
|
||||||
<value>Subscriber Number</value>
|
<value>Account Number</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="gvSubscriberNumber.Header" xml:space="preserve">
|
<data name="gvSubscriberNumber.Header" xml:space="preserve">
|
||||||
<value>Subscriber</value>
|
<value>Subscriber</value>
|
||||||
|
|
|
@ -58,7 +58,10 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ddlDomains.Items.Count == 0) btnAdd.Enabled = false;
|
if (ddlDomains.Items.Count == 0)
|
||||||
|
{
|
||||||
|
ddlDomains.Visible= btnAdd.Enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -95,11 +95,11 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel150"><asp:Localize ID="locSubscriberNumber" runat="server" meta:resourcekey="locSubscriberNumber" Text="Subscriber Number: *"></asp:Localize></td>
|
<td class="FormLabel150"><asp:Localize ID="locSubscriberNumber" runat="server" meta:resourcekey="locSubscriberNumber" Text="Account Number: *"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<asp:TextBox ID="txtSubscriberNumber" runat="server" CssClass="HugeTextBox200"></asp:TextBox>
|
<asp:TextBox ID="txtSubscriberNumber" runat="server" CssClass="HugeTextBox200"></asp:TextBox>
|
||||||
<asp:RequiredFieldValidator ID="valRequireSubscriberNumber" runat="server" meta:resourcekey="valRequireSubscriberNumber" ControlToValidate="txtSubscriberNumber"
|
<asp:RequiredFieldValidator ID="valRequireSubscriberNumber" runat="server" meta:resourcekey="valRequireSubscriberNumber" ControlToValidate="txtSubscriberNumber"
|
||||||
ErrorMessage="Enter Subscriber Number" ValidationGroup="CreateMailbox" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
ErrorMessage="Enter Account Number" ValidationGroup="CreateMailbox" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -1,31 +1,3 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
||||||
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
||||||
<asp:ListItem Value="AccountName" meta:resourcekey="ddlSearchColumnAccountName">AccountName</asp:ListItem>
|
<asp:ListItem Value="AccountName" meta:resourcekey="ddlSearchColumnAccountName">AccountName</asp:ListItem>
|
||||||
<asp:ListItem Value="SubscriberNumber" meta:resourcekey="ddlSearchColumnSubscriberNumber">Subscriber Number</asp:ListItem>
|
<asp:ListItem Value="SubscriberNumber" meta:resourcekey="ddlSearchColumnSubscriberNumber">Account Number</asp:ListItem>
|
||||||
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
||||||
CausesValidation="false"/>
|
CausesValidation="false"/>
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
|
@ -155,14 +155,5 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.QuotaViewer mailboxesQuota;
|
protected global::WebsitePanel.Portal.QuotaViewer mailboxesQuota;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// FormComments control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.Localize FormComments;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,11 @@
|
||||||
</asp:GridView>
|
</asp:GridView>
|
||||||
<br />
|
<br />
|
||||||
<table cellpadding="2">
|
<table cellpadding="2">
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150"><asp:Localize ID="locTotalMailboxes" runat="server" meta:resourcekey="locTotalMailboxes" Text="Total Mailboxes:"></asp:Localize></td>
|
||||||
|
<td><asp:Label ID="lblTotalMailboxes" runat="server" CssClass="NormalBold">177</asp:Label></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel150"><asp:Localize ID="locTotalMailboxItems" runat="server" meta:resourcekey="locTotalMailboxItems" Text="Total Items:"></asp:Localize></td>
|
<td class="FormLabel150"><asp:Localize ID="locTotalMailboxItems" runat="server" meta:resourcekey="locTotalMailboxItems" Text="Total Items:"></asp:Localize></td>
|
||||||
<td><asp:Label ID="lblTotalMailboxItems" runat="server" CssClass="NormalBold">177</asp:Label></td>
|
<td><asp:Label ID="lblTotalMailboxItems" runat="server" CssClass="NormalBold">177</asp:Label></td>
|
||||||
|
@ -50,6 +55,11 @@
|
||||||
<td class="FormLabel150"><asp:Localize ID="locTotalMailboxesSize" runat="server" meta:resourcekey="locTotalMailboxesSize" Text="Total Size (MB):"></asp:Localize></td>
|
<td class="FormLabel150"><asp:Localize ID="locTotalMailboxesSize" runat="server" meta:resourcekey="locTotalMailboxesSize" Text="Total Size (MB):"></asp:Localize></td>
|
||||||
<td><asp:Label ID="lblTotalMailboxSize" runat="server" CssClass="NormalBold">100</asp:Label></td>
|
<td><asp:Label ID="lblTotalMailboxSize" runat="server" CssClass="NormalBold">100</asp:Label></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150"><asp:Localize ID="Localize1" runat="server" meta:resourcekey="locAverageMailboxSize" Text="Avg. Size (MB):"></asp:Localize></td>
|
||||||
|
<td><asp:Label ID="lblAverageMailboxSize" runat="server" CssClass="NormalBold">100</asp:Label></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
|
@ -70,8 +70,13 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
totalMailboxesSizeMB += item.TotalSizeMB;
|
totalMailboxesSizeMB += item.TotalSizeMB;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
OrganizationStatistics stats = ES.Services.ExchangeServer.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID);
|
||||||
|
|
||||||
lblTotalMailboxItems.Text = totalMailboxItems.ToString();
|
lblTotalMailboxItems.Text = totalMailboxItems.ToString();
|
||||||
lblTotalMailboxSize.Text = totalMailboxesSizeMB.ToString();
|
lblTotalMailboxSize.Text = totalMailboxesSizeMB.ToString();
|
||||||
|
lblTotalMailboxes.Text = stats.CreatedMailboxes.ToString();
|
||||||
|
int avgSize = totalMailboxesSizeMB / stats.CreatedMailboxes;
|
||||||
|
lblAverageMailboxSize.Text = avgSize.ToString("N2");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -84,6 +84,24 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.GridView gvMailboxes;
|
protected global::System.Web.UI.WebControls.GridView gvMailboxes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTotalMailboxes control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locTotalMailboxes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblTotalMailboxes control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblTotalMailboxes;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// locTotalMailboxItems control.
|
/// locTotalMailboxItems control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -121,12 +139,21 @@ namespace WebsitePanel.Portal.ExchangeServer {
|
||||||
protected global::System.Web.UI.WebControls.Label lblTotalMailboxSize;
|
protected global::System.Web.UI.WebControls.Label lblTotalMailboxSize;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// FormComments control.
|
/// Localize1 control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Localize FormComments;
|
protected global::System.Web.UI.WebControls.Localize Localize1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblAverageMailboxSize control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblAverageMailboxSize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,11 +68,11 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel150"><asp:Localize ID="locSubscriberNumber" runat="server" meta:resourcekey="locSubscriberNumber" Text="Subscriber Number: *"></asp:Localize></td>
|
<td class="FormLabel150"><asp:Localize ID="locSubscriberNumber" runat="server" meta:resourcekey="locSubscriberNumber" Text="Account Number: *"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<asp:TextBox ID="txtSubscriberNumber" runat="server" CssClass="HugeTextBox200"></asp:TextBox>
|
<asp:TextBox ID="txtSubscriberNumber" runat="server" CssClass="HugeTextBox200"></asp:TextBox>
|
||||||
<asp:RequiredFieldValidator ID="valRequireSubscriberNumber" runat="server" meta:resourcekey="valRequireSubscriberNumber" ControlToValidate="txtSubscriberNumber"
|
<asp:RequiredFieldValidator ID="valRequireSubscriberNumber" runat="server" meta:resourcekey="valRequireSubscriberNumber" ControlToValidate="txtSubscriberNumber"
|
||||||
ErrorMessage="Enter Subscriber Number" ValidationGroup="CreateMailbox" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
ErrorMessage="Enter Account Number" ValidationGroup="CreateMailbox" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -236,14 +236,5 @@ namespace WebsitePanel.Portal.HostedSolution {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// FormComments control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.Localize FormComments;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
||||||
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
||||||
<asp:ListItem Value="AccountName" meta:resourcekey="ddlSearchColumnAccountName">AccountName</asp:ListItem>
|
<asp:ListItem Value="AccountName" meta:resourcekey="ddlSearchColumnAccountName">AccountName</asp:ListItem>
|
||||||
<asp:ListItem Value="SubscriberNumber" meta:resourcekey="ddlSearchColumnSubscriberNumber">Subscriber Number</asp:ListItem>
|
<asp:ListItem Value="SubscriberNumber" meta:resourcekey="ddlSearchColumnSubscriberNumber">Account Number</asp:ListItem>
|
||||||
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
||||||
CausesValidation="false"/>
|
CausesValidation="false"/>
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
|
@ -155,14 +155,5 @@ namespace WebsitePanel.Portal.HostedSolution {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.QuotaViewer usersQuota;
|
protected global::WebsitePanel.Portal.QuotaViewer usersQuota;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// FormComments control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.Localize FormComments;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,10 +54,13 @@
|
||||||
<td class="SubHead"><asp:Label ID="lblRecordData" runat="server" meta:resourcekey="lblRecordData" Text="Record Data:"></asp:Label></td>
|
<td class="SubHead"><asp:Label ID="lblRecordData" runat="server" meta:resourcekey="lblRecordData" Text="Record Data:"></asp:Label></td>
|
||||||
<td class="Normal" nowrap>
|
<td class="Normal" nowrap>
|
||||||
<asp:TextBox ID="txtRecordData" runat="server" Width="260px" CssClass="NormalTextBox"></asp:TextBox><uc1:SelectIPAddress ID="ipAddress" runat="server" />
|
<asp:TextBox ID="txtRecordData" runat="server" Width="260px" CssClass="NormalTextBox"></asp:TextBox><uc1:SelectIPAddress ID="ipAddress" runat="server" />
|
||||||
|
<!--
|
||||||
<asp:RequiredFieldValidator ID="valRequireData" runat="server" ControlToValidate="txtRecordData"
|
<asp:RequiredFieldValidator ID="valRequireData" runat="server" ControlToValidate="txtRecordData"
|
||||||
ErrorMessage="*" ValidationGroup="DnsRecord" Display="Dynamic"></asp:RequiredFieldValidator>
|
ErrorMessage="*" ValidationGroup="DnsRecord" Display="Dynamic"></asp:RequiredFieldValidator>
|
||||||
|
-->
|
||||||
<asp:CustomValidator ID="IPValidator" runat="server" ControlToValidate="txtRecordData" ValidationGroup="DnsRecord" Display="Dynamic" CssClass="NormalBold"
|
<asp:CustomValidator ID="IPValidator" runat="server" ControlToValidate="txtRecordData" ValidationGroup="DnsRecord" Display="Dynamic" CssClass="NormalBold"
|
||||||
OnServerValidate="Validate" Text="Please enter a valid IP" meta:resourcekey="IPValidator"/>
|
OnServerValidate="Validate" Text="Please enter a valid IP" meta:resourcekey="IPValidator" ValidateEmptyText="True" />
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr id="rowMXPriority" runat="server">
|
<tr id="rowMXPriority" runat="server">
|
||||||
|
|
|
@ -176,15 +176,22 @@ namespace WebsitePanel.Portal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
protected void Validate(object source, ServerValidateEventArgs args) {
|
protected void Validate(object source, ServerValidateEventArgs args) {
|
||||||
|
/*
|
||||||
var ip = args.Value;
|
var ip = args.Value;
|
||||||
System.Net.IPAddress ipaddr;
|
System.Net.IPAddress ipaddr;
|
||||||
|
if (string.IsNullOrEmpty(args.Value))
|
||||||
|
args.IsValid = true;
|
||||||
|
else
|
||||||
args.IsValid = System.Net.IPAddress.TryParse(ip, out ipaddr) && (ip.Contains(":") || ip.Contains(".")) &&
|
args.IsValid = System.Net.IPAddress.TryParse(ip, out ipaddr) && (ip.Contains(":") || ip.Contains(".")) &&
|
||||||
((ddlRecordType.SelectedValue == "A" && ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) ||
|
((ddlRecordType.SelectedValue == "A" && ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) ||
|
||||||
(ddlRecordType.SelectedValue == "AAAA" && ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6));
|
(ddlRecordType.SelectedValue == "AAAA" && ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6));
|
||||||
|
*/
|
||||||
|
args.IsValid = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SaveRecord()
|
private void SaveRecord()
|
||||||
{
|
{
|
||||||
|
if (!string.IsNullOrEmpty(txtRecordData.Text))
|
||||||
if (!Page.IsValid) return;
|
if (!Page.IsValid) return;
|
||||||
|
|
||||||
GlobalDnsRecord record = new GlobalDnsRecord();
|
GlobalDnsRecord record = new GlobalDnsRecord();
|
||||||
|
|
|
@ -1,32 +1,3 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -149,6 +120,24 @@ namespace WebsitePanel.Portal {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.SelectIPAddress ipAddress;
|
protected global::WebsitePanel.Portal.SelectIPAddress ipAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireData control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireData;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// IPValidator control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CustomValidator IPValidator;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// rowMXPriority control.
|
/// rowMXPriority control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -176,6 +165,24 @@ namespace WebsitePanel.Portal {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtMXPriority;
|
protected global::System.Web.UI.WebControls.TextBox txtMXPriority;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireMxPriority control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireMxPriority;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireCorrectPriority control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RegularExpressionValidator valRequireCorrectPriority;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// rowSRVPriority control.
|
/// rowSRVPriority control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -126,6 +126,16 @@ h2.ProductTitle {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="CheckLoadUserProfilePanel" Visible="False">
|
||||||
|
<div class="MessageBox Yellow">
|
||||||
|
To continue "Load User Profile" setting for the current application pool must be enabled.
|
||||||
|
<br/>
|
||||||
|
Enable this setting now? (May require relogin)
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<asp:Button runat="server" ID="EnableLoadUserProfileButton" Text="Yes" OnClick="EnableLoadUserProfileButton_OnClick"/>
|
||||||
|
</div>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
<asp:Panel ID="SearchPanel" class="FormBody" runat="server">
|
<asp:Panel ID="SearchPanel" class="FormBody" runat="server">
|
||||||
|
@ -284,7 +294,7 @@ h2.ProductTitle {
|
||||||
<ContentTemplate>
|
<ContentTemplate>
|
||||||
<asp:Timer ID="ProgressTimer" runat="server" Enabled="False" Interval="3000" OnTick="ProgressTimerTick"></asp:Timer>
|
<asp:Timer ID="ProgressTimer" runat="server" Enabled="False" Interval="3000" OnTick="ProgressTimerTick"></asp:Timer>
|
||||||
<asp:Panel ID="ProgressMessagePanel" class="FormBody" runat="server">
|
<asp:Panel ID="ProgressMessagePanel" class="FormBody" runat="server">
|
||||||
<h3 class="NormalBold">Selected products are installed now:</h3>
|
<h3 class="NormalBold">Selected products are being installed now:</h3>
|
||||||
<br/>
|
<br/>
|
||||||
<asp:Image runat="server" ID="ProgressAnimation" ImageAlign="AbsMiddle" ImageUrl="" CssClass="ProgressAnimation"></asp:Image>
|
<asp:Image runat="server" ID="ProgressAnimation" ImageAlign="AbsMiddle" ImageUrl="" CssClass="ProgressAnimation"></asp:Image>
|
||||||
<asp:Label ID="ProgressMessage" runat="server">initializing...</asp:Label>
|
<asp:Label ID="ProgressMessage" runat="server">initializing...</asp:Label>
|
||||||
|
|
|
@ -52,6 +52,33 @@ namespace WebsitePanel.Portal
|
||||||
{
|
{
|
||||||
if (!IsPostBack)
|
if (!IsPostBack)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!ES.Services.Servers.CheckLoadUserProfile(PanelRequest.ServerId))
|
||||||
|
{
|
||||||
|
CheckLoadUserProfilePanel.Visible = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (NotImplementedException ex)
|
||||||
|
{
|
||||||
|
CheckLoadUserProfilePanel.Visible = false;
|
||||||
|
ShowWarningMessage("Server application pool \"Load User Profile\" setting unavailable. IIS7 or higher is expected.");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
CheckLoadUserProfilePanel.Visible = false;
|
||||||
|
ProductsPanel.Visible = false;
|
||||||
|
keywordsList.Visible = false;
|
||||||
|
SearchPanel.Visible = false;
|
||||||
|
InstallButtons1.Visible = false;
|
||||||
|
InstallButtons2.Visible = false;
|
||||||
|
|
||||||
|
ShowErrorMessage("WPI_CHECK_LOAD_USER_PROFILE", ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
ES.Services.Servers.InitWPIFeeds(PanelRequest.ServerId);
|
ES.Services.Servers.InitWPIFeeds(PanelRequest.ServerId);
|
||||||
|
@ -582,5 +609,11 @@ namespace WebsitePanel.Portal
|
||||||
WpiLogsPre.InnerText = msg;
|
WpiLogsPre.InnerText = msg;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void EnableLoadUserProfileButton_OnClick(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ES.Services.Servers.EnableLoadUserProfile(PanelRequest.ServerId);
|
||||||
|
CheckLoadUserProfilePanel.Visible = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -59,6 +58,24 @@ namespace WebsitePanel.Portal {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.ServerHeaderControl ServerHeaderControl1;
|
protected global::WebsitePanel.Portal.ServerHeaderControl ServerHeaderControl1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CheckLoadUserProfilePanel control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel CheckLoadUserProfilePanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// EnableLoadUserProfileButton control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button EnableLoadUserProfileButton;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// SearchPanel control.
|
/// SearchPanel control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<td class="Normal"><asp:Literal ID="litFullName" runat="server"></asp:Literal></td>
|
<td class="Normal"><asp:Literal ID="litFullName" runat="server"></asp:Literal></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="SubHead"><asp:Localize ID="locSubscriberNumber" runat="server" meta:resourcekey="locSubscriberNumber" Text="Subscriber Number:"/></td>
|
<td class="SubHead"><asp:Localize ID="locSubscriberNumber" runat="server" meta:resourcekey="locSubscriberNumber" Text="Account Number:"/></td>
|
||||||
<td class="Normal"><asp:Literal ID="litSubscriberNumber" runat="server"></asp:Literal></td>
|
<td class="Normal"><asp:Literal ID="litSubscriberNumber" runat="server"></asp:Literal></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="SubHead">
|
<td class="SubHead">
|
||||||
<asp:Label ID="lblSubscriberNumber" runat="server" meta:resourcekey="lblSubscriberNumber" Text="Subscriber Number:"></asp:Label>
|
<asp:Label ID="lblSubscriberNumber" runat="server" meta:resourcekey="lblSubscriberNumber" Text="Account Number:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td class="NormalBold">
|
<td class="NormalBold">
|
||||||
<asp:TextBox id="txtSubscriberNumber" runat="server" CssClass="NormalTextBox"></asp:TextBox>
|
<asp:TextBox id="txtSubscriberNumber" runat="server" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
|
|
|
@ -97,17 +97,6 @@
|
||||||
Text="Create Web Site" Checked="True" />
|
Text="Create Web Site" Checked="True" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td class="Normal" width="100%">
|
|
||||||
<asp:Label ID="lblHostName" runat="server" meta:resourcekey="lblHostName" Text="Host name:"></asp:Label>
|
|
||||||
<asp:TextBox ID="txtHostName" runat="server" CssClass="NormalTextBox" Width="250px" MaxLength="64"></asp:TextBox>
|
|
||||||
<asp:RequiredFieldValidator ID="valRequireHostName" runat="server" meta:resourcekey="valRequireHostName" ControlToValidate="txtHostName"
|
|
||||||
ErrorMessage="Enter hostname" ValidationGroup="CreateSite" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
|
||||||
<asp:RegularExpressionValidator ID="valRequireCorrectHostName" runat="server"
|
|
||||||
ErrorMessage="Enter valid hostname" ControlToValidate="txtHostName" Display="Dynamic"
|
|
||||||
meta:resourcekey="valRequireCorrectHostName" ValidationExpression="^([0-9a-zA-Z])*[0-9a-zA-Z]+$" SetFocusOnError="True"></asp:RegularExpressionValidator>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
</table>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
|
|
|
@ -125,8 +125,6 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
string domainName = txtDomainName.Text.Trim();
|
string domainName = txtDomainName.Text.Trim();
|
||||||
|
|
||||||
string hostName = txtHostName.Text.Trim();
|
|
||||||
|
|
||||||
PackageResult result = null;
|
PackageResult result = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -136,7 +134,7 @@ namespace WebsitePanel.Portal
|
||||||
Utils.ParseInt(ddlStatus.SelectedValue, 0),
|
Utils.ParseInt(ddlStatus.SelectedValue, 0),
|
||||||
chkPackageLetter.Checked,
|
chkPackageLetter.Checked,
|
||||||
chkCreateResources.Checked, domainName, true, chkCreateWebSite.Checked,
|
chkCreateResources.Checked, domainName, true, chkCreateWebSite.Checked,
|
||||||
chkCreateFtpAccount.Checked, ftpAccount, chkCreateMailAccount.Checked, hostName);
|
chkCreateFtpAccount.Checked, ftpAccount, chkCreateMailAccount.Checked, "");
|
||||||
|
|
||||||
if (result.Result < 0)
|
if (result.Result < 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -210,42 +210,6 @@ namespace WebsitePanel.Portal {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkCreateWebSite;
|
protected global::System.Web.UI.WebControls.CheckBox chkCreateWebSite;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// lblHostName control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.Label lblHostName;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// txtHostName control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtHostName;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// valRequireHostName control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.RequiredFieldValidator valRequireHostName;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// valRequireCorrectHostName control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.RegularExpressionValidator valRequireCorrectHostName;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// fsFtp control.
|
/// fsFtp control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -55,7 +55,7 @@
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="SubHead">
|
<td class="SubHead">
|
||||||
<asp:Label ID="lblSubscriberNumber" runat="server" meta:resourcekey="lblSubscriberNumber" Text="Subscriber Number:"></asp:Label>
|
<asp:Label ID="lblSubscriberNumber" runat="server" meta:resourcekey="lblSubscriberNumber" Text="Account Number:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td class="NormalBold">
|
<td class="NormalBold">
|
||||||
<asp:TextBox ID="txtSubscriberNumber" runat="server" CssClass="NormalTextBox"></asp:TextBox>
|
<asp:TextBox ID="txtSubscriberNumber" runat="server" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
|
|
|
@ -155,7 +155,7 @@ namespace WebsitePanel.Portal
|
||||||
}
|
}
|
||||||
|
|
||||||
// MySQL Server
|
// MySQL Server
|
||||||
else if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.MySql) != null)
|
if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.MySql) != null)
|
||||||
{
|
{
|
||||||
// load package context
|
// load package context
|
||||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||||
|
@ -170,15 +170,15 @@ namespace WebsitePanel.Portal
|
||||||
}
|
}
|
||||||
|
|
||||||
// SQLite
|
// SQLite
|
||||||
else if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.SqLite) != null)
|
if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.SqLite) != null)
|
||||||
AddDatabaseEngine(DeploymentParameterWellKnownTag.SqLite, "", GetLocalizedString("DatabaseEngine.SQLite"));
|
AddDatabaseEngine(DeploymentParameterWellKnownTag.SqLite, "", GetLocalizedString("DatabaseEngine.SQLite"));
|
||||||
|
|
||||||
// Flat File
|
// Flat File
|
||||||
else if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.FlatFile) != null)
|
if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.FlatFile) != null)
|
||||||
AddDatabaseEngine(DeploymentParameterWellKnownTag.FlatFile, "", GetLocalizedString("DatabaseEngine.FlatFile"));
|
AddDatabaseEngine(DeploymentParameterWellKnownTag.FlatFile, "", GetLocalizedString("DatabaseEngine.FlatFile"));
|
||||||
|
|
||||||
// VistaFB
|
// VistaFB
|
||||||
else if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.VistaDB) != null)
|
if (FindParameterByTag(parameters, DeploymentParameterWellKnownTag.VistaDB) != null)
|
||||||
AddDatabaseEngine(DeploymentParameterWellKnownTag.VistaDB, "", GetLocalizedString("DatabaseEngine.VistaDB"));
|
AddDatabaseEngine(DeploymentParameterWellKnownTag.VistaDB, "", GetLocalizedString("DatabaseEngine.VistaDB"));
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<asp:Label ID="lblDomainName" runat="server" meta:resourcekey="lblDomainName" Text="Domain name:"></asp:Label>
|
<asp:Label ID="lblDomainName" runat="server" meta:resourcekey="lblDomainName" Text="Domain name:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<asp:TextBox ID="txtHostName" runat="server" CssClass="TextBox100" MaxLength="64"></asp:TextBox>.<uc1:DomainsSelectDomainControl ID="domainsSelectDomainControl" runat="server" HideWebSites="true" HideDomainPointers="true" />
|
<asp:TextBox ID="txtHostName" runat="server" CssClass="TextBox100" MaxLength="64" Text="www"></asp:TextBox>.<uc1:DomainsSelectDomainControl ID="domainsSelectDomainControl" runat="server" HideWebSites="true" HideDomainPointers="true" />
|
||||||
<asp:RequiredFieldValidator ID="valRequireHostName" runat="server" meta:resourcekey="valRequireHostName" ControlToValidate="txtHostName"
|
<asp:RequiredFieldValidator ID="valRequireHostName" runat="server" meta:resourcekey="valRequireHostName" ControlToValidate="txtHostName"
|
||||||
ErrorMessage="Enter hostname" ValidationGroup="CreateSite" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
ErrorMessage="Enter hostname" ValidationGroup="CreateSite" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||||
<asp:RegularExpressionValidator ID="valRequireCorrectHostName" runat="server"
|
<asp:RegularExpressionValidator ID="valRequireCorrectHostName" runat="server"
|
||||||
|
|
|
@ -1,31 +1,3 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<asp:Label ID="lblDomainName" runat="server" meta:resourcekey="lblDomainName" Text="Domain name:"></asp:Label>
|
<asp:Label ID="lblDomainName" runat="server" meta:resourcekey="lblDomainName" Text="Domain name:"></asp:Label>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<asp:TextBox ID="txtHostName" runat="server" CssClass="TextBox100" MaxLength="64"></asp:TextBox>.<uc1:DomainsSelectDomainControl ID="domainsSelectDomainControl" runat="server" HideWebSites="true" HideDomainPointers="true" />
|
<asp:TextBox ID="txtHostName" runat="server" CssClass="TextBox100" MaxLength="64" Text="www"></asp:TextBox> . <uc1:DomainsSelectDomainControl ID="domainsSelectDomainControl" runat="server" HideWebSites="true" HideDomainPointers="true" />
|
||||||
<asp:RequiredFieldValidator ID="valRequireHostName" runat="server" meta:resourcekey="valRequireHostName" ControlToValidate="txtHostName"
|
<asp:RequiredFieldValidator ID="valRequireHostName" runat="server" meta:resourcekey="valRequireHostName" ControlToValidate="txtHostName"
|
||||||
ErrorMessage="Enter hostname" ValidationGroup="CreateSite" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
ErrorMessage="Enter hostname" ValidationGroup="CreateSite" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||||
<asp:RegularExpressionValidator ID="valRequireCorrectHostName" runat="server"
|
<asp:RegularExpressionValidator ID="valRequireCorrectHostName" runat="server"
|
||||||
|
@ -19,6 +19,21 @@
|
||||||
meta:resourcekey="valRequireCorrectHostName" ValidationExpression="^([0-9a-zA-Z])*[0-9a-zA-Z]+$" SetFocusOnError="True"></asp:RegularExpressionValidator>
|
meta:resourcekey="valRequireCorrectHostName" ValidationExpression="^([0-9a-zA-Z])*[0-9a-zA-Z]+$" SetFocusOnError="True"></asp:RegularExpressionValidator>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Normal" nowrap rowspan="2"></td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:CheckBox ID="chkIgnoreGlobalDNSRecords" runat="server" meta:resourcekey="chkIgnoreGlobalDNSRecords"
|
||||||
|
Text="This hostname only, Ignore Zone Template" Checked="True" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Normal">
|
||||||
|
<div class="Small" style="padding-top: 10px;">
|
||||||
|
<asp:Label ID="lblIgnoreGlobalDNSRecords" runat="server" meta:resourcekey="lblIPHelp2" Text="If you need your site..."></asp:Label>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
|
@ -53,6 +53,8 @@ namespace WebsitePanel.Portal
|
||||||
// bind IP Addresses
|
// bind IP Addresses
|
||||||
BindIPAddresses();
|
BindIPAddresses();
|
||||||
|
|
||||||
|
BindIgnoreZoneTemplate();
|
||||||
|
|
||||||
// toggle
|
// toggle
|
||||||
ToggleControls();
|
ToggleControls();
|
||||||
}
|
}
|
||||||
|
@ -63,6 +65,19 @@ namespace WebsitePanel.Portal
|
||||||
rowDedicatedIP.Visible = rbDedicatedIP.Checked;
|
rowDedicatedIP.Visible = rbDedicatedIP.Checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void BindIgnoreZoneTemplate()
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||||
|
if (cntx.Quotas[Quotas.WEB_SITES].QuotaUsedValue > 0)
|
||||||
|
chkIgnoreGlobalDNSRecords.Visible = chkIgnoreGlobalDNSRecords.Checked = lblIgnoreGlobalDNSRecords.Visible = true;
|
||||||
|
else
|
||||||
|
chkIgnoreGlobalDNSRecords.Visible = chkIgnoreGlobalDNSRecords.Checked = lblIgnoreGlobalDNSRecords.Visible= false;
|
||||||
|
*/
|
||||||
|
|
||||||
|
chkIgnoreGlobalDNSRecords.Checked = false;
|
||||||
|
}
|
||||||
|
|
||||||
private void BindIPAddresses()
|
private void BindIPAddresses()
|
||||||
{
|
{
|
||||||
ddlIpAddresses.Items.Add(new ListItem("<Select IP>", ""));
|
ddlIpAddresses.Items.Add(new ListItem("<Select IP>", ""));
|
||||||
|
@ -92,7 +107,7 @@ namespace WebsitePanel.Portal
|
||||||
int packageAddressId = rbDedicatedIP.Checked ? Utils.ParseInt(ddlIpAddresses.SelectedValue, 0) : 0;
|
int packageAddressId = rbDedicatedIP.Checked ? Utils.ParseInt(ddlIpAddresses.SelectedValue, 0) : 0;
|
||||||
|
|
||||||
siteItemId = ES.Services.WebServers.AddWebSite(PanelSecurity.PackageId, txtHostName.Text.ToLower(), domainsSelectDomainControl.DomainId,
|
siteItemId = ES.Services.WebServers.AddWebSite(PanelSecurity.PackageId, txtHostName.Text.ToLower(), domainsSelectDomainControl.DomainId,
|
||||||
packageAddressId);
|
packageAddressId, chkIgnoreGlobalDNSRecords.Checked);
|
||||||
|
|
||||||
if (siteItemId < 0)
|
if (siteItemId < 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,31 +1,3 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -94,6 +66,24 @@ namespace WebsitePanel.Portal {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RegularExpressionValidator valRequireCorrectHostName;
|
protected global::System.Web.UI.WebControls.RegularExpressionValidator valRequireCorrectHostName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkIgnoreGlobalDNSRecords control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkIgnoreGlobalDNSRecords;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblIgnoreGlobalDNSRecords control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Label lblIgnoreGlobalDNSRecords;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// rowSiteIP control.
|
/// rowSiteIP control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -115,18 +115,38 @@
|
||||||
BackgroundCssClass="modalBackground" DropShadow="false" CancelControlID="PubProfileWizardCancelButton" />
|
BackgroundCssClass="modalBackground" DropShadow="false" CancelControlID="PubProfileWizardCancelButton" />
|
||||||
<div class="FormBody">
|
<div class="FormBody">
|
||||||
<wsp:SimpleMessageBox id="messageBox" runat="server" EnableViewState="false" />
|
<wsp:SimpleMessageBox id="messageBox" runat="server" EnableViewState="false" />
|
||||||
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
<table style="width:100%" cellpadding="0" cellspacing="0" border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td valign="top">
|
<td valign="top">
|
||||||
<table cellpadding="7" border="0">
|
<table cellpadding="7" border="0">
|
||||||
<tr>
|
<tr>
|
||||||
<td class="Big">
|
<td class="Big">
|
||||||
<asp:HyperLink ID="lnkSiteName" runat="server" NavigateUrl="#" Target="_blank">domain.com</asp:HyperLink>
|
<asp:HyperLink ID="lnkSiteName" runat="server" NavigateUrl="#" Target="_blank">domain.com</asp:HyperLink>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:Panel ID="sharedIP" runat="server">
|
||||||
|
<asp:Localize ID="locSharedIPAddress" runat="server" meta:resourcekey="locSharedIPAddress" Text="IP address: Shared" />
|
||||||
|
|
||||||
|
<asp:LinkButton ID="cmdSwitchToDedicatedIP" meta:resourcekey="cmdSwitchToDedicatedIP" runat="server" Text="Switch to dedicated IP" OnClick="cmdSwitchToDedicatedIP_Click"></asp:LinkButton>
|
||||||
|
</asp:Panel>
|
||||||
|
<asp:Panel ID="dedicatedIP" runat="server">
|
||||||
|
<asp:Localize ID="locDedicatedIPAddress" runat="server" meta:resourcekey="locDedicatedIPAddress" Text="IP address:" />
|
||||||
<asp:Literal ID="litIPAddress" runat="server"></asp:Literal>
|
<asp:Literal ID="litIPAddress" runat="server"></asp:Literal>
|
||||||
|
|
||||||
|
<asp:LinkButton ID="cmdSwitchToSharedIP" meta:resourcekey="cmdSwitchToSharedIP" runat="server" Text="Switch to shared IP" OnClick="cmdSwitchToSharedIP_Click"></asp:LinkButton>
|
||||||
|
</asp:Panel>
|
||||||
|
<asp:Panel ID="switchToDedicatedIP" runat="server" Visible="false">
|
||||||
|
<asp:Localize ID="locSelectIPAddress" runat="server" meta:resourcekey="locSelectIPAddress" Text="Select IP address:" />
|
||||||
|
<asp:dropdownlist id="ddlIpAddresses" Runat="server" CssClass="NormalTextBox"></asp:dropdownlist>
|
||||||
|
|
||||||
|
<asp:LinkButton ID="cmdApplyDedicatedIP" meta:resourcekey="cmdApplyDedicatedIP" runat="server" Text="Apply" OnClick="cmdApplyDedicatedIP_Click"></asp:LinkButton>
|
||||||
|
|
||||||
|
<asp:LinkButton ID="cmdCancelDedicatedIP" meta:resourcekey="cmdCancelDedicatedIP" runat="server" Text="Cancel" OnClick="cmdCancelDedicatedIP_Click"></asp:LinkButton>
|
||||||
|
</asp:Panel>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td colspan="2">
|
||||||
<div class="FormButtonsBar">
|
<div class="FormButtonsBar">
|
||||||
<asp:Button ID="btnAddPointer" runat="server" Text="Add Pointer" CssClass="Button2"
|
<asp:Button ID="btnAddPointer" runat="server" Text="Add Pointer" CssClass="Button2"
|
||||||
meta:resourcekey="btnAddPointer" OnClick="btnAddPointer_Click" />
|
meta:resourcekey="btnAddPointer" OnClick="btnAddPointer_Click" />
|
||||||
|
|
|
@ -163,8 +163,29 @@ namespace WebsitePanel.Portal
|
||||||
lnkSiteName.Text = site.Name;
|
lnkSiteName.Text = site.Name;
|
||||||
lnkSiteName.NavigateUrl = "http://" + site.Name;
|
lnkSiteName.NavigateUrl = "http://" + site.Name;
|
||||||
|
|
||||||
|
// bind unassigned IP addresses
|
||||||
|
PackageIPAddress[] ips = ES.Services.Servers.GetPackageUnassignedIPAddresses(site.PackageId, IPAddressPool.WebSites);
|
||||||
|
foreach (PackageIPAddress ip in ips)
|
||||||
|
{
|
||||||
|
string fullIP = ip.ExternalIP;
|
||||||
|
if (ip.InternalIP != null &&
|
||||||
|
ip.InternalIP != "" &&
|
||||||
|
ip.InternalIP != ip.ExternalIP)
|
||||||
|
fullIP += " (" + ip.InternalIP + ")";
|
||||||
|
|
||||||
|
ddlIpAddresses.Items.Add(new ListItem(fullIP, ip.PackageAddressID.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isDedicatedIP = false;
|
||||||
if (!String.IsNullOrEmpty(site.SiteIPAddress))
|
if (!String.IsNullOrEmpty(site.SiteIPAddress))
|
||||||
litIPAddress.Text = String.Format("({0})", site.SiteIPAddress);
|
{
|
||||||
|
litIPAddress.Text = site.SiteIPAddress;
|
||||||
|
isDedicatedIP = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
dedicatedIP.Visible = isDedicatedIP;
|
||||||
|
sharedIP.Visible = !isDedicatedIP;
|
||||||
|
cmdSwitchToDedicatedIP.Visible = (ddlIpAddresses.Items.Count > 0);
|
||||||
|
|
||||||
|
|
||||||
litFrontPageUnavailable.Visible = false;
|
litFrontPageUnavailable.Visible = false;
|
||||||
|
@ -981,5 +1002,74 @@ namespace WebsitePanel.Portal
|
||||||
PortalUtils.SPACE_ID_PARAM + "=" + PanelSecurity.PackageId.ToString()));
|
PortalUtils.SPACE_ID_PARAM + "=" + PanelSecurity.PackageId.ToString()));
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
protected void cmdSwitchToDedicatedIP_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
sharedIP.Visible = false;
|
||||||
|
switchToDedicatedIP.Visible = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void cmdSwitchToSharedIP_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// call web service
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int result = ES.Services.WebServers.SwitchWebSiteToSharedIP(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ShowSuccessMessage("WEB_SWITCH_TO_SHARED_IP");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("WEB_SWITCH_TO_SHARED_IP", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// rebind
|
||||||
|
BindWebSite();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void cmdApplyDedicatedIP_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// call web service
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int addressId = Int32.Parse(ddlIpAddresses.SelectedValue);
|
||||||
|
int result = ES.Services.WebServers.SwitchWebSiteToDedicatedIP(PanelRequest.ItemID, addressId);
|
||||||
|
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ShowSuccessMessage("WEB_SWITCH_TO_DEDICATED_IP");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("WEB_SWITCH_TO_DEDICATED_IP", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// rebind
|
||||||
|
HideDedicatedIPPanel();
|
||||||
|
BindWebSite();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void cmdCancelDedicatedIP_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
HideDedicatedIPPanel();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HideDedicatedIPPanel()
|
||||||
|
{
|
||||||
|
switchToDedicatedIP.Visible = false;
|
||||||
|
sharedIP.Visible = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -192,6 +192,51 @@ namespace WebsitePanel.Portal {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.HyperLink lnkSiteName;
|
protected global::System.Web.UI.WebControls.HyperLink lnkSiteName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// sharedIP control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel sharedIP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locSharedIPAddress control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locSharedIPAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cmdSwitchToDedicatedIP control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.LinkButton cmdSwitchToDedicatedIP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// dedicatedIP control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel dedicatedIP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locDedicatedIPAddress control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locDedicatedIPAddress;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// litIPAddress control.
|
/// litIPAddress control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -201,6 +246,60 @@ namespace WebsitePanel.Portal {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Literal litIPAddress;
|
protected global::System.Web.UI.WebControls.Literal litIPAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cmdSwitchToSharedIP control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.LinkButton cmdSwitchToSharedIP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// switchToDedicatedIP control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel switchToDedicatedIP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locSelectIPAddress control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locSelectIPAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlIpAddresses control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddlIpAddresses;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cmdApplyDedicatedIP control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.LinkButton cmdApplyDedicatedIP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cmdCancelDedicatedIP control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.LinkButton cmdCancelDedicatedIP;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnAddPointer control.
|
/// btnAddPointer control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
<add key="WebPortal.ThemeProvider" value="WebsitePanel.Portal.WebPortalThemeProvider, WebsitePanel.Portal.Modules"/>
|
<add key="WebPortal.ThemeProvider" value="WebsitePanel.Portal.WebPortalThemeProvider, WebsitePanel.Portal.Modules"/>
|
||||||
<add key="WebPortal.PageTitleProvider" value="WebsitePanel.Portal.WebPortalPageTitleProvider, WebsitePanel.Portal.Modules"/>
|
<add key="WebPortal.PageTitleProvider" value="WebsitePanel.Portal.WebPortalPageTitleProvider, WebsitePanel.Portal.Modules"/>
|
||||||
<add key="ChartImageHandler" value="storage=file;timeout=20;" />
|
<add key="ChartImageHandler" value="storage=file;timeout=20;" />
|
||||||
|
<add key="SessionValidationKey" value="DAD46D476F85E0198BCA134D7AA5CC1D7" />
|
||||||
</appSettings>
|
</appSettings>
|
||||||
<system.web.extensions>
|
<system.web.extensions>
|
||||||
<scripting>
|
<scripting>
|
||||||
|
@ -56,6 +57,9 @@
|
||||||
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
|
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
|
||||||
<add verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
|
<add verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
|
||||||
</httpHandlers>
|
</httpHandlers>
|
||||||
|
<httpModules>
|
||||||
|
<add name="SecureSession" type="WebsitePanel.WebPortal.SecureSessionModule" />
|
||||||
|
</httpModules>
|
||||||
<!-- Authentication -->
|
<!-- Authentication -->
|
||||||
<authentication mode="Forms">
|
<authentication mode="Forms">
|
||||||
<forms name=".WEBSITEPANELPORTALAUTHASPX" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" domain="" enableCrossAppRedirects="false">
|
<forms name=".WEBSITEPANELPORTALAUTHASPX" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" domain="" enableCrossAppRedirects="false">
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue