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,7 +310,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
rr.MxPriority = record.MxPriority;
|
rr.MxPriority = record.MxPriority;
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(rr.RecordData))
|
if (!String.IsNullOrEmpty(rr.RecordData))
|
||||||
zoneRecords.Add(rr);
|
{
|
||||||
|
if (rr.RecordName != "[host_name]")
|
||||||
|
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,7 +2005,8 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete zone if required
|
// delete zone if required
|
||||||
DnsServerController.DeleteZone(domain.ZoneItemId);
|
if (!domain.IsDomainPointer)
|
||||||
|
DnsServerController.DeleteZone(domain.ZoneItemId);
|
||||||
|
|
||||||
// delete domain
|
// delete domain
|
||||||
DataProvider.DeleteDomain(SecurityContext.User.UserId, domainId);
|
DataProvider.DeleteDomain(SecurityContext.User.UserId, domainId);
|
||||||
|
|
|
@ -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,36 +712,46 @@ 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);
|
//only look for the host_nanme record, ignore all others
|
||||||
|
if (dnsRecord.RecordName == "[host_name]")
|
||||||
string recordData = string.Empty;
|
{
|
||||||
if (tmpName.Contains("."))
|
AddBinding(bindings, new ServerBinding(ipAddr, "80", recordData));
|
||||||
recordData = hostName;
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
recordData = tmpName + ((tmpName != "") ? "." : "") + domainName;
|
{
|
||||||
|
AddBinding(bindings, new ServerBinding(ipAddr, "80", recordData));
|
||||||
bindings.Add(new ServerBinding(ipAddr, "80", recordData));
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
if ((bindings.Count == bindingsCount) | (bindings.Count == 0))
|
||||||
if(bindings.Count == bindingsCount)
|
|
||||||
{
|
{
|
||||||
bindings.Add(new ServerBinding(ipAddr, "80", domainName));
|
AddBinding(bindings, new ServerBinding(ipAddr, "80", string.IsNullOrEmpty(hostName) ? domainName : hostName + "." + domainName));
|
||||||
bindings.Add(new ServerBinding(ipAddr, "80", "www." + 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)
|
||||||
{
|
{
|
||||||
UsernamePolicy policy = new UsernamePolicy(webPolicy["AnonymousAccountPolicy"]);
|
UsernamePolicy policy = new UsernamePolicy(webPolicy["AnonymousAccountPolicy"]);
|
||||||
|
@ -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,59 +933,58 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
// update host headers
|
// update host headers
|
||||||
if (updateWebSite)
|
List<ServerBinding> bindings = new List<ServerBinding>();
|
||||||
|
|
||||||
|
// get existing web site bindings
|
||||||
|
WebServer web = new WebServer();
|
||||||
|
ServiceProviderProxy.Init(web, siteItem.ServiceId);
|
||||||
|
|
||||||
|
bindings.AddRange(web.GetSiteBindings(siteItem.SiteId));
|
||||||
|
|
||||||
|
// check if web site has dedicated IP assigned
|
||||||
|
bool dedicatedIp = bindings.Exists(binding => { return String.IsNullOrEmpty(binding.Host) && binding.IP != "*"; });
|
||||||
|
|
||||||
|
// update binding only for "shared" ip addresses
|
||||||
|
if (!dedicatedIp)
|
||||||
{
|
{
|
||||||
// get existing web site bindings
|
// add new host headers
|
||||||
WebServer web = new WebServer();
|
string ipAddr = "*";
|
||||||
ServiceProviderProxy.Init(web, siteItem.ServiceId);
|
if (ip != null)
|
||||||
|
ipAddr = !String.IsNullOrEmpty(ip.InternalIP) ? ip.InternalIP : ip.ExternalIP;
|
||||||
|
|
||||||
List<ServerBinding> bindings = new List<ServerBinding>();
|
// fill bindings
|
||||||
bindings.AddRange(web.GetSiteBindings(siteItem.SiteId));
|
FillWebServerBindings(bindings, dnsRecords, ipAddr, hostName, domain.DomainName, ignoreGlobalDNSRecords);
|
||||||
|
|
||||||
// check if web site has dedicated IP assigned
|
//for logging purposes
|
||||||
bool dedicatedIp = bindings.Exists(binding => { return String.IsNullOrEmpty(binding.Host) && binding.IP != "*"; });
|
foreach (ServerBinding b in bindings)
|
||||||
|
|
||||||
// update binding only for "shared" ip addresses
|
|
||||||
if (!dedicatedIp)
|
|
||||||
{
|
{
|
||||||
// add new host headers
|
string header = string.Format("{0} {1} {2}", b.Host, b.IP, b.Port);
|
||||||
string ipAddr = "*";
|
TaskManager.WriteParameter("Add Binding", header);
|
||||||
if (ip != null)
|
|
||||||
ipAddr = !String.IsNullOrEmpty(ip.InternalIP) ? ip.InternalIP : ip.ExternalIP;
|
|
||||||
|
|
||||||
// fill bindings
|
|
||||||
FillWebServerBindings(bindings, dnsRecords, ipAddr, hostName, domain.DomainName);
|
|
||||||
|
|
||||||
foreach (ServerBinding b in bindings)
|
|
||||||
{
|
|
||||||
string header = string.Format("{0} {1} {2}", b.Host, b.IP, b.Port);
|
|
||||||
TaskManager.WriteParameter("Add Binding", b.Host);
|
|
||||||
}
|
|
||||||
|
|
||||||
// update bindings
|
|
||||||
web.UpdateSiteBindings(siteItem.SiteId, bindings.ToArray());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// update bindings
|
||||||
|
if (updateWebSite)
|
||||||
|
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;
|
||||||
int domainID = ServerController.AddDomain(domain);
|
foreach (ServerBinding b in bindings)
|
||||||
|
|
||||||
DomainInfo domainTmp = ServerController.GetDomain(domainID);
|
|
||||||
if (domainTmp != null)
|
|
||||||
{
|
{
|
||||||
domainTmp.WebSiteId = siteItemId;
|
//add new domain record
|
||||||
domainTmp.ZoneItemId = domain.ZoneItemId;
|
domain.DomainName = b.Host;
|
||||||
ServerController.UpdateDomain(domainTmp);
|
int domainID = ServerController.AddDomain(domain);
|
||||||
|
DomainInfo domainTmp = ServerController.GetDomain(domainID);
|
||||||
|
if (domainTmp != null)
|
||||||
|
{
|
||||||
|
domainTmp.WebSiteId = siteItemId;
|
||||||
|
domainTmp.ZoneItemId = domain.ZoneItemId;
|
||||||
|
ServerController.UpdateDomain(domainTmp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -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,36 +1067,34 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (updateWebSite)
|
// get existing web site bindings
|
||||||
|
WebServer web = new WebServer();
|
||||||
|
ServiceProviderProxy.Init(web, siteItem.ServiceId);
|
||||||
|
|
||||||
|
List<ServerBinding> bindings = new List<ServerBinding>();
|
||||||
|
bindings.AddRange(web.GetSiteBindings(siteItem.SiteId));
|
||||||
|
|
||||||
|
// check if web site has dedicated IP assigned
|
||||||
|
bool dedicatedIp = bindings.Exists(binding => { return String.IsNullOrEmpty(binding.Host) && binding.IP != "*"; });
|
||||||
|
|
||||||
|
// update binding only for "shared" ip addresses
|
||||||
|
if (!dedicatedIp)
|
||||||
{
|
{
|
||||||
// get existing web site bindings
|
// remove host headers
|
||||||
WebServer web = new WebServer();
|
List<ServerBinding> domainBindings = new List<ServerBinding>();
|
||||||
ServiceProviderProxy.Init(web, siteItem.ServiceId);
|
FillWebServerBindings(domainBindings, dnsRecords, "", domain.DomainName, "", ignoreGlobalDNSRecords);
|
||||||
|
|
||||||
List<ServerBinding> bindings = new List<ServerBinding>();
|
// fill to remove list
|
||||||
bindings.AddRange(web.GetSiteBindings(siteItem.SiteId));
|
List<string> headersToRemove = new List<string>();
|
||||||
|
foreach (ServerBinding domainBinding in domainBindings)
|
||||||
|
headersToRemove.Add(domainBinding.Host);
|
||||||
|
|
||||||
// check if web site has dedicated IP assigned
|
// remove bndings
|
||||||
bool dedicatedIp = bindings.Exists(binding => { return String.IsNullOrEmpty(binding.Host) && binding.IP != "*"; });
|
bindings.RemoveAll(b => { return headersToRemove.Contains(b.Host) && b.Port == "80"; } );
|
||||||
|
|
||||||
// update binding only for "shared" ip addresses
|
// update bindings
|
||||||
if (!dedicatedIp)
|
if (updateWebSite)
|
||||||
{
|
|
||||||
// remove host headers
|
|
||||||
List<ServerBinding> domainBindings = new List<ServerBinding>();
|
|
||||||
FillWebServerBindings(domainBindings, dnsRecords, "", domain.DomainName, "");
|
|
||||||
|
|
||||||
// fill to remove list
|
|
||||||
List<string> headersToRemove = new List<string>();
|
|
||||||
foreach (ServerBinding domainBinding in domainBindings)
|
|
||||||
headersToRemove.Add(domainBinding.Host);
|
|
||||||
|
|
||||||
// remove bndings
|
|
||||||
bindings.RemoveAll(b => { return headersToRemove.Contains(b.Host) && b.Port == "80"; } );
|
|
||||||
|
|
||||||
// update bindings
|
|
||||||
web.UpdateSiteBindings(siteItem.SiteId, bindings.ToArray());
|
web.UpdateSiteBindings(siteItem.SiteId, bindings.ToArray());
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// update domain
|
// update domain
|
||||||
|
|
|
@ -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,9 +3380,12 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
DirectoryEntry dlDEEntry = GetADObject(AddADPrefix(id));
|
DirectoryEntry dlDEEntry = GetADObject(AddADPrefix(id));
|
||||||
dlDEEntry.Properties["showInAddressBook"].Clear();
|
dlDEEntry.Properties["showInAddressBook"].Clear();
|
||||||
foreach (string addressList in addressLists)
|
if (!HideFromAddressList)
|
||||||
{
|
{
|
||||||
dlDEEntry.Properties["showInAddressBook"].Add(addressList);
|
foreach (string addressList in addressLists)
|
||||||
|
{
|
||||||
|
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>
|
||||||
|
@ -243,7 +243,7 @@
|
||||||
<data name="gvHeliconApeGroupsName.Header" xml:space="preserve">
|
<data name="gvHeliconApeGroupsName.Header" xml:space="preserve">
|
||||||
<value>.htaccess Groups</value>
|
<value>.htaccess Groups</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="gvMimeTypes.Empty" xml:space="preserve">
|
<data name="gvMimeTypes.Empty" xml:space="preserve">
|
||||||
<value>Custom MIME types are not defined</value>
|
<value>Custom MIME types are not defined</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="gvMimeTypesExtension.Header" xml:space="preserve">
|
<data name="gvMimeTypesExtension.Header" xml:space="preserve">
|
||||||
|
@ -408,55 +408,82 @@ To connect to web site management service please use username and password provi
|
||||||
<data name="Tab.SSL" xml:space="preserve">
|
<data name="Tab.SSL" xml:space="preserve">
|
||||||
<value>SSL</value>
|
<value>SSL</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Tab.WebDeployPublishing" xml:space="preserve">
|
<data name="Tab.WebDeployPublishing" xml:space="preserve">
|
||||||
<value>Web Publishing</value>
|
<value>Web Publishing</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeploySitePublishingDisabled.Text" xml:space="preserve">
|
<data name="WDeploySitePublishingDisabled.Text" xml:space="preserve">
|
||||||
<value>Web Deploy Publishing is Disabled.</value>
|
<value>Web Deploy Publishing is Disabled.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeploySitePublishingEnabled.Text" xml:space="preserve">
|
<data name="WDeploySitePublishingEnabled.Text" xml:space="preserve">
|
||||||
<value>Web Deploy Publishing is Enabled.</value>
|
<value>Web Deploy Publishing is Enabled.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeploySitePublishingEnablementHint.Text" xml:space="preserve">
|
<data name="WDeploySitePublishingEnablementHint.Text" xml:space="preserve">
|
||||||
<value>To enable Web Publishing for this web site specify account user name and password and then click "Enable" button.</value>
|
<value>To enable Web Publishing for this web site specify account user name and password and then click "Enable" button.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PubProfileMsSqlLocalize.Text" xml:space="preserve">
|
<data name="PubProfileMsSqlLocalize.Text" xml:space="preserve">
|
||||||
<value>Please choose a Microsoft SQL database:</value>
|
<value>Please choose a Microsoft SQL database:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeployBuildPublishingProfileWizard.Text" xml:space="preserve">
|
<data name="WDeployBuildPublishingProfileWizard.Text" xml:space="preserve">
|
||||||
<value>Build Publising Profile Wizard</value>
|
<value>Build Publising Profile Wizard</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeployBuildSitePublishingProfileHint.Text" xml:space="preserve">
|
<data name="WDeployBuildSitePublishingProfileHint.Text" xml:space="preserve">
|
||||||
<value>Please use the link below to build a publishing profile that makes it easy to configure publishing settings for your convenience.</value>
|
<value>Please use the link below to build a publishing profile that makes it easy to configure publishing settings for your convenience.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeployChangePublishingPasswButton.Text" xml:space="preserve">
|
<data name="WDeployChangePublishingPasswButton.Text" xml:space="preserve">
|
||||||
<value>Change Password</value>
|
<value>Change Password</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeployDisablePublishingButton.Text" xml:space="preserve">
|
<data name="WDeployDisablePublishingButton.Text" xml:space="preserve">
|
||||||
<value>Disable</value>
|
<value>Disable</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeployEnabePublishingButton.Text" xml:space="preserve">
|
<data name="WDeployEnabePublishingButton.Text" xml:space="preserve">
|
||||||
<value>Enable</value>
|
<value>Enable</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeployPublishingAccountLocalize.Text" xml:space="preserve">
|
<data name="WDeployPublishingAccountLocalize.Text" xml:space="preserve">
|
||||||
<value>Username:</value>
|
<value>Username:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeployPublishingConfirmPasswordLocalize.Text" xml:space="preserve">
|
<data name="WDeployPublishingConfirmPasswordLocalize.Text" xml:space="preserve">
|
||||||
<value>Confim password:</value>
|
<value>Confim password:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeployPublishingPasswordLocalize.Text" xml:space="preserve">
|
<data name="WDeployPublishingPasswordLocalize.Text" xml:space="preserve">
|
||||||
<value>Password:</value>
|
<value>Password:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WDeployPublishingProfileUsageNotes.Text" xml:space="preserve">
|
<data name="WDeployPublishingProfileUsageNotes.Text" xml:space="preserve">
|
||||||
<value>Now you can publish content to this site easily via either Web Matrix or Visual Studio .NET 2010. Please use the link below to download publishing profile that makes it easy to publish the content online for your convenience. You also have an option to re-build publishing profile if you decide to change or update your publishing settings.</value>
|
<value>Now you can publish content to this site easily via either Web Matrix or Visual Studio .NET 2010. Please use the link below to download publishing profile that makes it easy to publish the content online for your convenience. You also have an option to re-build publishing profile if you decide to change or update your publishing settings.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebPublishing.ChooseDatabasePrompt" xml:space="preserve">
|
<data name="WebPublishing.ChooseDatabasePrompt" xml:space="preserve">
|
||||||
<value>Choose database...</value>
|
<value>Choose database...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WebPublishing.ChooseDatabaseUserPrompt" xml:space="preserve">
|
<data name="WebPublishing.ChooseDatabaseUserPrompt" xml:space="preserve">
|
||||||
<value>Choose database user...</value>
|
<value>Choose database user...</value>
|
||||||
</data>
|
</data>
|
||||||
<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,16 +176,23 @@ 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;
|
||||||
args.IsValid = System.Net.IPAddress.TryParse(ip, out ipaddr) && (ip.Contains(":") || ip.Contains(".")) &&
|
if (string.IsNullOrEmpty(args.Value))
|
||||||
((ddlRecordType.SelectedValue == "A" && ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) ||
|
args.IsValid = true;
|
||||||
(ddlRecordType.SelectedValue == "AAAA" && ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6));
|
else
|
||||||
|
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 == "AAAA" && ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6));
|
||||||
|
*/
|
||||||
|
args.IsValid = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SaveRecord()
|
private void SaveRecord()
|
||||||
{
|
{
|
||||||
if (!Page.IsValid) return;
|
if (!string.IsNullOrEmpty(txtRecordData.Text))
|
||||||
|
if (!Page.IsValid) return;
|
||||||
|
|
||||||
GlobalDnsRecord record = new GlobalDnsRecord();
|
GlobalDnsRecord record = new GlobalDnsRecord();
|
||||||
record.RecordId = (int)ViewState["RecordID"];
|
record.RecordId = (int)ViewState["RecordID"];
|
||||||
|
|
|
@ -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>
|
||||||
<asp:Literal ID="litIPAddress" runat="server"></asp:Literal>
|
|
||||||
</td>
|
</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: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>
|
||||||
</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;
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(site.SiteIPAddress))
|
// bind unassigned IP addresses
|
||||||
litIPAddress.Text = String.Format("({0})", site.SiteIPAddress);
|
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))
|
||||||
|
{
|
||||||
|
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,7 +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" />
|
<add key="SessionValidationKey" value="DAD46D476F85E0198BCA134D7AA5CC1D7" />
|
||||||
</appSettings>
|
</appSettings>
|
||||||
<system.web>
|
<system.web>
|
||||||
<!-- SiteMap settings -->
|
<!-- SiteMap settings -->
|
||||||
|
@ -48,8 +48,8 @@
|
||||||
<handlers>
|
<handlers>
|
||||||
<add name="ChartImg" path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" resourceType="Unspecified" preCondition="integratedMode" />
|
<add name="ChartImg" path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" resourceType="Unspecified" preCondition="integratedMode" />
|
||||||
</handlers>
|
</handlers>
|
||||||
<modules>
|
<modules>
|
||||||
<add name="SecureSession" type="WebsitePanel.WebPortal.SecureSessionModule" />
|
<add name="SecureSession" type="WebsitePanel.WebPortal.SecureSessionModule" />
|
||||||
</modules>
|
</modules>
|
||||||
</system.webServer>
|
</system.webServer>
|
||||||
</configuration>
|
</configuration>
|
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