Merge
This commit is contained in:
commit
ec856b89f2
120 changed files with 2867 additions and 841 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);
|
||||||
|
|
|
@ -6508,6 +6508,7 @@ CREATE TABLE [dbo].[ExchangeOrganizationDomains](
|
||||||
[ItemID] [int] NOT NULL,
|
[ItemID] [int] NOT NULL,
|
||||||
[DomainID] [int] NULL,
|
[DomainID] [int] NULL,
|
||||||
[IsHost] [bit] NULL,
|
[IsHost] [bit] NULL,
|
||||||
|
[DomainTypeID] [int] NOT NULL,
|
||||||
CONSTRAINT [PK_ExchangeOrganizationDomains] PRIMARY KEY CLUSTERED
|
CONSTRAINT [PK_ExchangeOrganizationDomains] PRIMARY KEY CLUSTERED
|
||||||
(
|
(
|
||||||
[OrganizationDomainID] ASC
|
[OrganizationDomainID] ASC
|
||||||
|
@ -6634,7 +6635,8 @@ AS
|
||||||
SELECT
|
SELECT
|
||||||
ED.DomainID,
|
ED.DomainID,
|
||||||
D.DomainName,
|
D.DomainName,
|
||||||
ED.IsHost
|
ED.IsHost,
|
||||||
|
ED.DomainTypeID
|
||||||
FROM
|
FROM
|
||||||
ExchangeOrganizationDomains AS ED
|
ExchangeOrganizationDomains AS ED
|
||||||
INNER JOIN Domains AS D ON ED.DomainID = D.DomainID
|
INNER JOIN Domains AS D ON ED.DomainID = D.DomainID
|
||||||
|
@ -45799,6 +45801,29 @@ GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].ChangeExchangeAcceptedDomainType
|
||||||
|
(
|
||||||
|
@ItemID int,
|
||||||
|
@DomainID int,
|
||||||
|
@DomainTypeID int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
UPDATE ExchangeOrganizationDomains
|
||||||
|
SET DomainTypeID=@DomainTypeID
|
||||||
|
WHERE ItemID=ItemID AND DomainID=@DomainID
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -46064,6 +46089,8 @@ ALTER TABLE [dbo].[ExchangeOrganizationDomains] CHECK CONSTRAINT [FK_ExchangeOrg
|
||||||
GO
|
GO
|
||||||
ALTER TABLE [dbo].[ExchangeOrganizationDomains] ADD CONSTRAINT [DF_ExchangeOrganizationDomains_IsHost] DEFAULT ((0)) FOR [IsHost]
|
ALTER TABLE [dbo].[ExchangeOrganizationDomains] ADD CONSTRAINT [DF_ExchangeOrganizationDomains_IsHost] DEFAULT ((0)) FOR [IsHost]
|
||||||
GO
|
GO
|
||||||
|
ALTER TABLE [dbo].[ExchangeOrganizationDomains] ADD CONSTRAINT [DF_ExchangeOrganizationDomains_DomainTypeID] DEFAULT ((0)) FOR [DomainTypeID]
|
||||||
|
GO
|
||||||
ALTER TABLE [dbo].[PrivateIPAddresses] WITH CHECK ADD CONSTRAINT [FK_PrivateIPAddresses_ServiceItems] FOREIGN KEY([ItemID])
|
ALTER TABLE [dbo].[PrivateIPAddresses] WITH CHECK ADD CONSTRAINT [FK_PrivateIPAddresses_ServiceItems] FOREIGN KEY([ItemID])
|
||||||
REFERENCES [dbo].[ServiceItems] ([ItemID])
|
REFERENCES [dbo].[ServiceItems] ([ItemID])
|
||||||
ON DELETE CASCADE
|
ON DELETE CASCADE
|
||||||
|
|
|
@ -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,6 +5211,66 @@ 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
|
|
@ -736,6 +736,17 @@ namespace WebsitePanel.EnterpriseServer.HostedSolution {
|
||||||
return ((int)(results[0]));
|
return ((int)(results[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/ChangeOrganizationDomainType", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public int ChangeOrganizationDomainType(int itemId, int domainId, ExchangeAcceptedDomainType newDomainType)
|
||||||
|
{
|
||||||
|
object[] results = this.Invoke("ChangeOrganizationDomainType", new object[] {
|
||||||
|
itemId,
|
||||||
|
domainId,
|
||||||
|
newDomainType});
|
||||||
|
return ((int)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public System.IAsyncResult BeginDeleteOrganizationDomain(int itemId, int domainId, System.AsyncCallback callback, object asyncState) {
|
public System.IAsyncResult BeginDeleteOrganizationDomain(int itemId, int domainId, System.AsyncCallback callback, object asyncState) {
|
||||||
return this.BeginInvoke("DeleteOrganizationDomain", new object[] {
|
return this.BeginInvoke("DeleteOrganizationDomain", new object[] {
|
||||||
|
|
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,6 +2153,18 @@ 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(
|
||||||
|
@ -3399,5 +3412,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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -284,7 +284,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
if (record.RecordType == "A" || record.RecordType == "AAAA")
|
if (record.RecordType == "A" || record.RecordType == "AAAA")
|
||||||
{
|
{
|
||||||
rr.RecordData = String.IsNullOrEmpty(record.RecordData) ? record.ExternalIP : record.RecordData;
|
rr.RecordData = String.IsNullOrEmpty(record.RecordData) ? record.ExternalIP : record.RecordData;
|
||||||
rr.RecordData = Utils.ReplaceStringVariable(rr.RecordData, "ip", record.ExternalIP);
|
rr.RecordData = Utils.ReplaceStringVariable(rr.RecordData, "ip", string.IsNullOrEmpty(serviceIP) ? record.ExternalIP : serviceIP);
|
||||||
|
|
||||||
if (String.IsNullOrEmpty(rr.RecordData) && !String.IsNullOrEmpty(serviceIP))
|
if (String.IsNullOrEmpty(rr.RecordData) && !String.IsNullOrEmpty(serviceIP))
|
||||||
rr.RecordData = serviceIP;
|
rr.RecordData = serviceIP;
|
||||||
|
@ -310,8 +310,11 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
rr.MxPriority = record.MxPriority;
|
rr.MxPriority = record.MxPriority;
|
||||||
|
|
||||||
if (!String.IsNullOrEmpty(rr.RecordData))
|
if (!String.IsNullOrEmpty(rr.RecordData))
|
||||||
|
{
|
||||||
|
if (rr.RecordName != "[host_name]")
|
||||||
zoneRecords.Add(rr);
|
zoneRecords.Add(rr);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return zoneRecords;
|
return zoneRecords;
|
||||||
}
|
}
|
||||||
|
|
|
@ -446,6 +446,10 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
hubTransportRole.AddAuthoritativeDomain(domain.DomainName);
|
hubTransportRole.AddAuthoritativeDomain(domain.DomainName);
|
||||||
}
|
}
|
||||||
|
if (domain.DomainType != ExchangeAcceptedDomainType.Authoritative)
|
||||||
|
{
|
||||||
|
hubTransportRole.ChangeAcceptedDomainType(domain.DomainName, domain.DomainType);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
authDomainCreated = true;
|
authDomainCreated = true;
|
||||||
break;
|
break;
|
||||||
|
@ -1424,7 +1428,63 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int ChangeAcceptedDomainType(int itemId, int domainId, ExchangeAcceptedDomainType domainType)
|
||||||
|
{
|
||||||
|
// check account
|
||||||
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
if (accountCheck < 0) return accountCheck;
|
||||||
|
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("EXCHANGE", "CHANGE_DOMAIN_TYPE");
|
||||||
|
TaskManager.TaskParameters["Domain ID"] = domainId;
|
||||||
|
TaskManager.TaskParameters["Domain Type"] = domainType.ToString();
|
||||||
|
TaskManager.ItemId = itemId;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// load organization
|
||||||
|
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||||
|
if (org == null)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
// load domain
|
||||||
|
DomainInfo domain = ServerController.GetDomain(domainId);
|
||||||
|
if (domain == null)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
int[] hubTransportServiceIds;
|
||||||
|
int[] clientAccessServiceIds;
|
||||||
|
int exchangeServiceId = GetExchangeServiceID(org.PackageId);
|
||||||
|
GetExchangeServices(exchangeServiceId, out hubTransportServiceIds, out clientAccessServiceIds);
|
||||||
|
|
||||||
|
foreach (int id in hubTransportServiceIds)
|
||||||
|
{
|
||||||
|
ExchangeServer hubTransportRole = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
hubTransportRole = GetExchangeServer(id, org.ServiceId);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TaskManager.WriteError(ex);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
hubTransportRole.ChangeAcceptedDomainType(domain.DomainName, domainType);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static int DeleteAuthoritativeDomain(int itemId, int domainId)
|
public static int DeleteAuthoritativeDomain(int itemId, int domainId)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1042,6 +1042,37 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int ChangeOrganizationDomainType(int itemId, int domainId, ExchangeAcceptedDomainType newDomainType)
|
||||||
|
{
|
||||||
|
// check account
|
||||||
|
int accountCheck = SecurityContext.CheckAccount(DemandAccount.NotDemo | DemandAccount.IsActive);
|
||||||
|
if (accountCheck < 0) return accountCheck;
|
||||||
|
|
||||||
|
// place log record
|
||||||
|
TaskManager.StartTask("ORGANIZATION", "CHANGE_DOMAIN_TYPE", domainId);
|
||||||
|
TaskManager.ItemId = itemId;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// change accepted domain type on Exchange
|
||||||
|
int checkResult = ExchangeServerController.ChangeAcceptedDomainType(itemId, domainId, newDomainType);
|
||||||
|
|
||||||
|
|
||||||
|
// change accepted domain type in DB
|
||||||
|
int domainTypeId= (int) newDomainType;
|
||||||
|
DataProvider.ChangeExchangeAcceptedDomainType(itemId, domainId, domainTypeId);
|
||||||
|
|
||||||
|
return checkResult;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
throw TaskManager.WriteError(ex);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
TaskManager.CompleteTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static int AddOrganizationDomain(int itemId, string domainName)
|
public static int AddOrganizationDomain(int itemId, string domainName)
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,6 +41,7 @@ using WebsitePanel.Providers.OS;
|
||||||
using OS = WebsitePanel.Providers.OS;
|
using OS = WebsitePanel.Providers.OS;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
|
||||||
|
|
||||||
namespace WebsitePanel.EnterpriseServer
|
namespace WebsitePanel.EnterpriseServer
|
||||||
{
|
{
|
||||||
public class OperatingSystemController : IImportController, IBackupController
|
public class OperatingSystemController : IImportController, IBackupController
|
||||||
|
@ -409,6 +410,23 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
#region Web Platform Installer
|
#region Web Platform Installer
|
||||||
|
|
||||||
|
public static bool CheckLoadUserProfile(int serverId)
|
||||||
|
{
|
||||||
|
int packageId = DataProvider.GetPackageIdByName("IIS70");
|
||||||
|
int serviceId = DataProvider.GetServiceIdByProviderForServer(packageId, serverId);
|
||||||
|
return WebServerController.GetWebServer(serviceId).CheckLoadUserProfile();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void EnableLoadUserProfile(int serverId)
|
||||||
|
{
|
||||||
|
int packageId = DataProvider.GetPackageIdByName("IIS70");
|
||||||
|
int serviceId = DataProvider.GetServiceIdByProviderForServer(packageId, serverId);
|
||||||
|
WebServerController.GetWebServer(serviceId).EnableLoadUserProfile();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void InitWPIFeeds(int serverId, string feedUrls)
|
public static void InitWPIFeeds(int serverId, string feedUrls)
|
||||||
{
|
{
|
||||||
GetServerService(serverId).InitWPIFeeds(feedUrls);
|
GetServerService(serverId).InitWPIFeeds(feedUrls);
|
||||||
|
@ -747,6 +765,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -481,7 +481,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
// create web site
|
// create web site
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
int webSiteId = WebServerController.AddWebSite(packageId, hostName, domainId, 0, true);
|
int webSiteId = WebServerController.AddWebSite(packageId, hostName, domainId, 0, true, false);
|
||||||
if (webSiteId < 0)
|
if (webSiteId < 0)
|
||||||
{
|
{
|
||||||
result.Result = webSiteId;
|
result.Result = webSiteId;
|
||||||
|
|
|
@ -1729,7 +1729,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
int webSiteId = 0;
|
int webSiteId = 0;
|
||||||
if (webEnabled && createWebSite)
|
if (webEnabled && createWebSite)
|
||||||
{
|
{
|
||||||
webSiteId = WebServerController.AddWebSite(packageId, hostName, domainId, 0, createInstantAlias);
|
webSiteId = WebServerController.AddWebSite(packageId, hostName, domainId, 0, createInstantAlias, false);
|
||||||
|
|
||||||
if (webSiteId < 0)
|
if (webSiteId < 0)
|
||||||
{
|
{
|
||||||
|
@ -2005,6 +2005,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete zone if required
|
// delete zone if required
|
||||||
|
if (!domain.IsDomainPointer)
|
||||||
DnsServerController.DeleteZone(domain.ZoneItemId);
|
DnsServerController.DeleteZone(domain.ZoneItemId);
|
||||||
|
|
||||||
// delete domain
|
// delete domain
|
||||||
|
|
|
@ -228,7 +228,7 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
"sp_dropsrvrolemember '{0}', 'dbcreator'\nGO", dbUser.Name));
|
"sp_dropsrvrolemember '{0}', 'dbcreator'\nGO", dbUser.Name));
|
||||||
|
|
||||||
// restore original web site bindings
|
// restore original web site bindings
|
||||||
web.UpdateSiteBindings(site.SiteId, bindings);
|
web.UpdateSiteBindings(site.SiteId, bindings, false);
|
||||||
|
|
||||||
// save statistics item
|
// save statistics item
|
||||||
item.ServiceId = serviceId;
|
item.ServiceId = serviceId;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -122,6 +122,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
return OrganizationController.AddOrganizationDomain(itemId, domainName);
|
return OrganizationController.AddOrganizationDomain(itemId, domainName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public int ChangeOrganizationDomainType(int itemId, int domainId, ExchangeAcceptedDomainType newDomainType)
|
||||||
|
{
|
||||||
|
return OrganizationController.ChangeOrganizationDomainType(itemId, domainId, newDomainType);
|
||||||
|
}
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public List<OrganizationDomainName> GetOrganizationDomains(int itemId)
|
public List<OrganizationDomainName> GetOrganizationDomains(int itemId)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
{
|
||||||
|
public enum ExchangeAcceptedDomainType
|
||||||
|
{
|
||||||
|
Authoritative = 0,
|
||||||
|
InternalRelay = 1,
|
||||||
|
ExternalRelay = 2
|
||||||
|
}
|
||||||
|
}
|
|
@ -53,6 +53,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
// Domains
|
// Domains
|
||||||
void AddAuthoritativeDomain(string domain);
|
void AddAuthoritativeDomain(string domain);
|
||||||
void DeleteAuthoritativeDomain(string domain);
|
void DeleteAuthoritativeDomain(string domain);
|
||||||
|
void ChangeAcceptedDomainType(string domain, ExchangeAcceptedDomainType domainType);
|
||||||
string[] GetAuthoritativeDomains();
|
string[] GetAuthoritativeDomains();
|
||||||
|
|
||||||
// Mailboxes
|
// Mailboxes
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
// (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.
|
||||||
|
|
||||||
|
using System;
|
||||||
namespace WebsitePanel.Providers.HostedSolution
|
namespace WebsitePanel.Providers.HostedSolution
|
||||||
{
|
{
|
||||||
public class OrganizationDomainName
|
public class OrganizationDomainName
|
||||||
|
@ -33,6 +34,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
int organizationDomainId;
|
int organizationDomainId;
|
||||||
int itemId;
|
int itemId;
|
||||||
int domainId;
|
int domainId;
|
||||||
|
int domainTypeId;
|
||||||
string domainName;
|
string domainName;
|
||||||
bool isHost;
|
bool isHost;
|
||||||
bool isDefault;
|
bool isDefault;
|
||||||
|
@ -55,6 +57,21 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
set { domainId = value; }
|
set { domainId = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int DomainTypeId
|
||||||
|
{
|
||||||
|
get { return domainTypeId; }
|
||||||
|
set { domainTypeId = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public ExchangeAcceptedDomainType DomainType
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
ExchangeAcceptedDomainType type = (ExchangeAcceptedDomainType)domainTypeId;
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public int OrganizationDomainId
|
public int OrganizationDomainId
|
||||||
{
|
{
|
||||||
get { return organizationDomainId; }
|
get { return organizationDomainId; }
|
||||||
|
|
|
@ -51,7 +51,7 @@ namespace WebsitePanel.Providers.Web
|
||||||
ServerBinding[] GetSiteBindings(string siteId);
|
ServerBinding[] GetSiteBindings(string siteId);
|
||||||
string CreateSite(WebSite site);
|
string CreateSite(WebSite site);
|
||||||
void UpdateSite(WebSite site);
|
void UpdateSite(WebSite site);
|
||||||
void UpdateSiteBindings(string siteId, ServerBinding[] bindings);
|
void UpdateSiteBindings(string siteId, ServerBinding[] bindings, bool emptyBindingsAllowed);
|
||||||
void DeleteSite(string siteId);
|
void DeleteSite(string siteId);
|
||||||
|
|
||||||
// virtual directories
|
// virtual directories
|
||||||
|
@ -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,67 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
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,49 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
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,6 +230,11 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
{
|
{
|
||||||
DeleteAuthoritativeDomainInternal(domain);
|
DeleteAuthoritativeDomainInternal(domain);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ChangeAcceptedDomainType(string domainName, ExchangeAcceptedDomainType domainType)
|
||||||
|
{
|
||||||
|
ChangeAcceptedDomainTypeInternal(domainName, domainType);
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Mailboxes
|
#region Mailboxes
|
||||||
|
@ -1374,11 +1379,15 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
long size = 0;
|
long size = 0;
|
||||||
|
|
||||||
Command cmd = new Command("Get-PublicFolderStatistics");
|
Command cmd = new Command("Get-PublicFolderDatabase");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd);
|
||||||
|
if (result != null && result.Count > 0)
|
||||||
|
{
|
||||||
|
cmd = new Command("Get-PublicFolderStatistics");
|
||||||
cmd.Parameters.Add("Identity", folder);
|
cmd.Parameters.Add("Identity", folder);
|
||||||
if (!string.IsNullOrEmpty(PublicFolderServer))
|
if (!string.IsNullOrEmpty(PublicFolderServer))
|
||||||
cmd.Parameters.Add("Server", PublicFolderServer);
|
cmd.Parameters.Add("Server", PublicFolderServer);
|
||||||
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd);
|
result = ExecuteShellCommand(runSpace, cmd);
|
||||||
if (result != null && result.Count > 0)
|
if (result != null && result.Count > 0)
|
||||||
{
|
{
|
||||||
PSObject obj = result[0];
|
PSObject obj = result[0];
|
||||||
|
@ -1398,6 +1407,9 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
string id = ObjToString(GetPSObjectProperty(obj, "Identity"));
|
string id = ObjToString(GetPSObjectProperty(obj, "Identity"));
|
||||||
size += CalculatePublicFolderDiskSpace(runSpace, id);
|
size += CalculatePublicFolderDiskSpace(runSpace, id);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
size = 0;
|
||||||
ExchangeLog.LogEnd("CalculatePublicFolderDiskSpace");
|
ExchangeLog.LogEnd("CalculatePublicFolderDiskSpace");
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
@ -3353,7 +3365,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)
|
||||||
|
@ -3370,7 +3382,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);
|
||||||
|
@ -3380,10 +3392,13 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
DirectoryEntry dlDEEntry = GetADObject(AddADPrefix(id));
|
DirectoryEntry dlDEEntry = GetADObject(AddADPrefix(id));
|
||||||
dlDEEntry.Properties["showInAddressBook"].Clear();
|
dlDEEntry.Properties["showInAddressBook"].Clear();
|
||||||
|
if (!HideFromAddressList)
|
||||||
|
{
|
||||||
foreach (string addressList in addressLists)
|
foreach (string addressList in addressLists)
|
||||||
{
|
{
|
||||||
dlDEEntry.Properties["showInAddressBook"].Add(addressList);
|
dlDEEntry.Properties["showInAddressBook"].Add(addressList);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
dlDEEntry.CommitChanges();
|
dlDEEntry.CommitChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3542,7 +3557,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addressLists.Length > 0)
|
if (addressLists.Length > 0)
|
||||||
FixShowInAddressBook(runSpace, accountName, addressLists);
|
FixShowInAddressBook(runSpace, accountName, addressLists, hideFromAddressBook);
|
||||||
|
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
@ -3612,7 +3627,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
|
||||||
|
@ -3648,7 +3670,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
|
||||||
|
@ -3720,7 +3749,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
|
||||||
|
@ -3856,7 +3892,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
|
||||||
{
|
{
|
||||||
|
@ -3955,17 +3998,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)
|
||||||
|
@ -3975,7 +4025,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
CloseRunspace(runspace);
|
CloseRunspace(runSpace);
|
||||||
}
|
}
|
||||||
|
|
||||||
ExchangeLog.LogEnd("SetDistributionListPermissionsInternal");
|
ExchangeLog.LogEnd("SetDistributionListPermissionsInternal");
|
||||||
|
@ -5916,6 +5966,31 @@ 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");
|
||||||
|
@ -5980,6 +6055,17 @@ 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
|
||||||
|
|
|
@ -1237,7 +1237,7 @@ namespace WebsitePanel.Providers.Web
|
||||||
// Create site
|
// Create site
|
||||||
webObjectsSvc.CreateSite(site);
|
webObjectsSvc.CreateSite(site);
|
||||||
// Update web site bindings
|
// Update web site bindings
|
||||||
webObjectsSvc.UpdateSiteBindings(site.SiteId, site.Bindings);
|
webObjectsSvc.UpdateSiteBindings(site.SiteId, site.Bindings, false);
|
||||||
// Set web site logging settings
|
// Set web site logging settings
|
||||||
webObjectsSvc.SetWebSiteLoggingSettings(site);
|
webObjectsSvc.SetWebSiteLoggingSettings(site);
|
||||||
}
|
}
|
||||||
|
@ -1322,7 +1322,7 @@ namespace WebsitePanel.Providers.Web
|
||||||
// Update website
|
// Update website
|
||||||
webObjectsSvc.UpdateSite(site);
|
webObjectsSvc.UpdateSite(site);
|
||||||
// Update website bindings
|
// Update website bindings
|
||||||
webObjectsSvc.UpdateSiteBindings(site.SiteId, site.Bindings);
|
webObjectsSvc.UpdateSiteBindings(site.SiteId, site.Bindings, false);
|
||||||
// Set website logging settings
|
// Set website logging settings
|
||||||
webObjectsSvc.SetWebSiteLoggingSettings(site);
|
webObjectsSvc.SetWebSiteLoggingSettings(site);
|
||||||
//
|
//
|
||||||
|
@ -1440,9 +1440,9 @@ namespace WebsitePanel.Providers.Web
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="siteId">Site's id to update bindings for.</param>
|
/// <param name="siteId">Site's id to update bindings for.</param>
|
||||||
/// <param name="bindings">Bindings information.</param>
|
/// <param name="bindings">Bindings information.</param>
|
||||||
public override void UpdateSiteBindings(string siteId, ServerBinding[] bindings)
|
public override void UpdateSiteBindings(string siteId, ServerBinding[] bindings, bool emptyBindingsAllowed)
|
||||||
{
|
{
|
||||||
this.webObjectsSvc.UpdateSiteBindings(siteId, bindings);
|
this.webObjectsSvc.UpdateSiteBindings(siteId, bindings, emptyBindingsAllowed);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,32 @@
|
||||||
using System.Reflection;
|
// 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.
|
||||||
|
|
||||||
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
@ -19,13 +47,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:
|
|
|
@ -422,11 +422,14 @@ namespace WebsitePanel.Providers.Web.Iis.WebObjects
|
||||||
return bindings.ToArray();
|
return bindings.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SyncWebSiteBindingsChanges(string siteId, ServerBinding[] bindings)
|
private void SyncWebSiteBindingsChanges(string siteId, ServerBinding[] bindings, bool emptyBindingsAllowed)
|
||||||
{
|
{
|
||||||
// ensure site bindings
|
// ensure site bindings
|
||||||
|
if (!emptyBindingsAllowed)
|
||||||
|
{
|
||||||
if (bindings == null || bindings.Length == 0)
|
if (bindings == null || bindings.Length == 0)
|
||||||
throw new Exception("SiteServerBindingsEmpty");
|
throw new Exception("SiteServerBindingsEmpty");
|
||||||
|
}
|
||||||
|
|
||||||
using (var srvman = GetServerManager())
|
using (var srvman = GetServerManager())
|
||||||
{
|
{
|
||||||
|
@ -461,7 +464,7 @@ namespace WebsitePanel.Providers.Web.Iis.WebObjects
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateSiteBindings(string siteId, ServerBinding[] bindings)
|
public void UpdateSiteBindings(string siteId, ServerBinding[] bindings, bool emptyBindingsAllowed)
|
||||||
{
|
{
|
||||||
using (ServerManager srvman = GetServerManager())
|
using (ServerManager srvman = GetServerManager())
|
||||||
{
|
{
|
||||||
|
@ -470,7 +473,7 @@ namespace WebsitePanel.Providers.Web.Iis.WebObjects
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
SyncWebSiteBindingsChanges(siteId, bindings);
|
SyncWebSiteBindingsChanges(siteId, bindings, emptyBindingsAllowed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetPhysicalPath(ServerManager srvman, WebVirtualDirectory virtualDir)
|
public string GetPhysicalPath(ServerManager srvman, WebVirtualDirectory virtualDir)
|
||||||
|
|
|
@ -847,7 +847,7 @@ namespace WebsitePanel.Providers.Web
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void UpdateSiteBindings(string siteId, ServerBinding[] bindings)
|
public virtual void UpdateSiteBindings(string siteId, ServerBinding[] bindings, bool emptyBindingsAllowed)
|
||||||
{
|
{
|
||||||
ManagementObject objSite = wmi.GetObject(String.Format("IIsWebServerSetting='{0}'", siteId));
|
ManagementObject objSite = wmi.GetObject(String.Format("IIsWebServerSetting='{0}'", siteId));
|
||||||
|
|
||||||
|
@ -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,62 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
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,49 @@
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
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>
|
|
@ -1033,6 +1033,16 @@ namespace WebsitePanel.Providers.Exchange
|
||||||
domain});
|
domain});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/ChangeAcceptedDomainType", 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 ChangeAcceptedDomainType(string domain, ExchangeAcceptedDomainType domainType)
|
||||||
|
{
|
||||||
|
this.Invoke("ChangeAcceptedDomainType", new object[] {
|
||||||
|
domain,
|
||||||
|
domainType});
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public System.IAsyncResult BeginAddAuthoritativeDomain(string domain, System.AsyncCallback callback, object asyncState) {
|
public System.IAsyncResult BeginAddAuthoritativeDomain(string domain, System.AsyncCallback callback, object asyncState) {
|
||||||
return this.BeginInvoke("AddAuthoritativeDomain", new object[] {
|
return this.BeginInvoke("AddAuthoritativeDomain", new object[] {
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -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)
|
||||||
|
|
|
@ -265,6 +265,21 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public void ChangeAcceptedDomainType(string domain, ExchangeAcceptedDomainType domainType)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
LogStart("ChangeAcceptedDomainType");
|
||||||
|
ES.ChangeAcceptedDomainType(domain, domainType);
|
||||||
|
LogEnd("ChangeAcceptedDomainType");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
LogError("ChangeAcceptedDomainType", ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public string[] GetAuthoritativeDomains()
|
public string[] GetAuthoritativeDomains()
|
||||||
|
|
|
@ -229,12 +229,12 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
[WebMethod, SoapHeader("settings")]
|
[WebMethod, SoapHeader("settings")]
|
||||||
public void UpdateSiteBindings(string siteId, ServerBinding[] bindings)
|
public void UpdateSiteBindings(string siteId, ServerBinding[] bindings, bool emptyBindingsAllowed)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Log.WriteStart("'{0}' UpdateSiteBindings", ProviderSettings.ProviderName);
|
Log.WriteStart("'{0}' UpdateSiteBindings", ProviderSettings.ProviderName);
|
||||||
WebProvider.UpdateSiteBindings(siteId, bindings);
|
WebProvider.UpdateSiteBindings(siteId, bindings, emptyBindingsAllowed);
|
||||||
Log.WriteEnd("'{0}' UpdateSiteBindings", ProviderSettings.ProviderName);
|
Log.WriteEnd("'{0}' UpdateSiteBindings", ProviderSettings.ProviderName);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
@ -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>
|
|
@ -195,4 +195,7 @@
|
||||||
<data name="lblExchangeStorage.Text" xml:space="preserve">
|
<data name="lblExchangeStorage.Text" xml:space="preserve">
|
||||||
<value>Exchange Storage, MB:</value>
|
<value>Exchange Storage, MB:</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="lblOrganizations.Text" xml:space="preserve">
|
||||||
|
<value>Organizations:</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">
|
||||||
|
@ -459,4 +459,31 @@ To connect to web site management service please use username and password provi
|
||||||
<data name="WebPublishing.ChooseFtpAccountPrompt" xml:space="preserve">
|
<data name="WebPublishing.ChooseFtpAccountPrompt" xml:space="preserve">
|
||||||
<value>Choose FTP account...</value>
|
<value>Choose FTP account...</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="cmdApplyDedicatedIP.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Applying changes...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdApplyDedicatedIP.Text" xml:space="preserve">
|
||||||
|
<value>Apply</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdCancelDedicatedIP.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdSwitchToDedicatedIP.Text" xml:space="preserve">
|
||||||
|
<value>Switch to dedicated IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdSwitchToSharedIP.OnClientClick" xml:space="preserve">
|
||||||
|
<value>if(!confirm('Do you really want to switch this web site to shared IP?')) return false;ShowProgressDialog('Applying changes...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdSwitchToSharedIP.Text" xml:space="preserve">
|
||||||
|
<value>Switch to shared IP</value>
|
||||||
|
</data>
|
||||||
|
<data name="locDedicatedIPAddress.Text" xml:space="preserve">
|
||||||
|
<value>IP address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locSelectIPAddress.Text" xml:space="preserve">
|
||||||
|
<value>Select IP address:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locSharedIPAddress.Text" xml:space="preserve">
|
||||||
|
<value>IP address: Shared</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -157,7 +157,7 @@
|
||||||
<value>Password: *</value>
|
<value>Password: *</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
<data name="locSubscriberNumber.Text" xml:space="preserve">
|
||||||
<value>Subscriber Number: *</value>
|
<value>Account Number: *</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="locTitle.Text" xml:space="preserve">
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
<value>Create New Mailbox</value>
|
<value>Create New Mailbox</value>
|
||||||
|
@ -187,7 +187,7 @@
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="valRequireSubscriberNumber.ErrorMessage" xml:space="preserve">
|
<data name="valRequireSubscriberNumber.ErrorMessage" xml:space="preserve">
|
||||||
<value>Enter Subscriber Number</value>
|
<value>Enter Account Number</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="valRequireSubscriberNumber.Text" xml:space="preserve">
|
<data name="valRequireSubscriberNumber.Text" xml:space="preserve">
|
||||||
<value>*</value>
|
<value>*</value>
|
||||||
|
|
|
@ -155,4 +155,13 @@
|
||||||
<data name="Text.PageName" xml:space="preserve">
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
<value>Domain Names</value>
|
<value>Domain Names</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="gvDomainsType.Header" xml:space="preserve">
|
||||||
|
<value>Domain Type</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvDomainsTypeChange.Header" xml:space="preserve">
|
||||||
|
<value>Change Type</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnChangeDomain.Text" xml:space="preserve">
|
||||||
|
<value>Change</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.
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
Width="100%" EmptyDataText="gvDomains" CssSelectorClass="NormalGridView" OnRowCommand="gvDomains_RowCommand">
|
Width="100%" EmptyDataText="gvDomains" CssSelectorClass="NormalGridView" OnRowCommand="gvDomains_RowCommand">
|
||||||
<Columns>
|
<Columns>
|
||||||
<asp:TemplateField HeaderText="gvDomainsName">
|
<asp:TemplateField HeaderText="gvDomainsName">
|
||||||
<ItemStyle Width="70%"></ItemStyle>
|
<ItemStyle Width="50%"></ItemStyle>
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<asp:hyperlink id="lnkEditZone" runat="server" EnableViewState="false"
|
<asp:hyperlink id="lnkEditZone" runat="server" EnableViewState="false"
|
||||||
NavigateUrl='<%# GetDomainRecordsEditUrl(Eval("DomainID").ToString()) %>' Enabled='<%# !(bool)Eval("IsHost") %>'>
|
NavigateUrl='<%# GetDomainRecordsEditUrl(Eval("DomainID").ToString()) %>' Enabled='<%# !(bool)Eval("IsHost") %>'>
|
||||||
|
@ -41,6 +41,20 @@
|
||||||
</asp:hyperlink>
|
</asp:hyperlink>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
</asp:TemplateField>
|
</asp:TemplateField>
|
||||||
|
<asp:TemplateField HeaderText="gvDomainsType">
|
||||||
|
<ItemTemplate>
|
||||||
|
<div style="text-align:center">
|
||||||
|
<asp:Label ID="Label1" Text='<%# Eval("DomainType") %>' runat="server"/>
|
||||||
|
</div>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:TemplateField HeaderText="gvDomainsTypeChange">
|
||||||
|
<ItemTemplate>
|
||||||
|
<div style="text-align:center">
|
||||||
|
<asp:Button ID="btnChangeDomain" text="Change" meta:resourcekey="btnChangeDomain" runat="server" CommandName="Change" CommandArgument='<%# Eval("DomainId") + "|" + Eval("DomainType") %>'/>
|
||||||
|
</div>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
<asp:TemplateField HeaderText="gvDomainsDefault">
|
<asp:TemplateField HeaderText="gvDomainsDefault">
|
||||||
<ItemTemplate>
|
<ItemTemplate>
|
||||||
<div style="text-align:center">
|
<div style="text-align:center">
|
||||||
|
|
|
@ -117,6 +117,37 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
ShowErrorMessage("EXCHANGE_DELETE_DOMAIN", ex);
|
ShowErrorMessage("EXCHANGE_DELETE_DOMAIN", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (e.CommandName == "Change")
|
||||||
|
{
|
||||||
|
string[] commandArgument = e.CommandArgument.ToString().Split('|');
|
||||||
|
int domainId = Utils.ParseInt(commandArgument[0].ToString(), 0);
|
||||||
|
ExchangeAcceptedDomainType acceptedDomainType = (ExchangeAcceptedDomainType)Enum.Parse(typeof(ExchangeAcceptedDomainType), commandArgument[1]);
|
||||||
|
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
|
||||||
|
ExchangeAcceptedDomainType newDomainType = ExchangeAcceptedDomainType.Authoritative;
|
||||||
|
if (acceptedDomainType == ExchangeAcceptedDomainType.Authoritative)
|
||||||
|
newDomainType = ExchangeAcceptedDomainType.InternalRelay;
|
||||||
|
|
||||||
|
int result = ES.Services.Organizations.ChangeOrganizationDomainType(PanelRequest.ItemID, domainId, newDomainType);
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
messageBox.ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// rebind domains
|
||||||
|
BindDomainNames();
|
||||||
|
|
||||||
|
BindStats();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("EXCHANGE_CHANGE_DOMAIN", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void btnSetDefaultDomain_Click(object sender, EventArgs e)
|
protected void btnSetDefaultDomain_Click(object sender, EventArgs e)
|
||||||
|
@ -143,5 +174,6 @@ namespace WebsitePanel.Portal.ExchangeServer
|
||||||
ShowErrorMessage("EXCHANGE_SET_DEFAULT_DOMAIN", ex);
|
ShowErrorMessage("EXCHANGE_SET_DEFAULT_DOMAIN", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,3 +1,31 @@
|
||||||
|
// 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.
|
||||||
|
@ -110,14 +138,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 domainsQuota;
|
protected global::WebsitePanel.Portal.QuotaViewer domainsQuota;
|
||||||
|
|
||||||
/// <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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,11 +68,11 @@
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="FormLabel150"><asp:Localize ID="locSubscriberNumber" runat="server" meta:resourcekey="locSubscriberNumber" Text="Subscriber Number: *"></asp:Localize></td>
|
<td class="FormLabel150"><asp:Localize ID="locSubscriberNumber" runat="server" meta:resourcekey="locSubscriberNumber" Text="Account Number: *"></asp:Localize></td>
|
||||||
<td>
|
<td>
|
||||||
<asp:TextBox ID="txtSubscriberNumber" runat="server" CssClass="HugeTextBox200"></asp:TextBox>
|
<asp:TextBox ID="txtSubscriberNumber" runat="server" CssClass="HugeTextBox200"></asp:TextBox>
|
||||||
<asp:RequiredFieldValidator ID="valRequireSubscriberNumber" runat="server" meta:resourcekey="valRequireSubscriberNumber" ControlToValidate="txtSubscriberNumber"
|
<asp:RequiredFieldValidator ID="valRequireSubscriberNumber" runat="server" meta:resourcekey="valRequireSubscriberNumber" ControlToValidate="txtSubscriberNumber"
|
||||||
ErrorMessage="Enter Subscriber Number" ValidationGroup="CreateMailbox" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
ErrorMessage="Enter Account Number" ValidationGroup="CreateMailbox" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|
|
@ -236,14 +236,5 @@ namespace WebsitePanel.Portal.HostedSolution {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// FormComments control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.Localize FormComments;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
<asp:ListItem Value="DisplayName" meta:resourcekey="ddlSearchColumnDisplayName">DisplayName</asp:ListItem>
|
||||||
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
<asp:ListItem Value="PrimaryEmailAddress" meta:resourcekey="ddlSearchColumnEmail">Email</asp:ListItem>
|
||||||
<asp:ListItem Value="AccountName" meta:resourcekey="ddlSearchColumnAccountName">AccountName</asp:ListItem>
|
<asp:ListItem Value="AccountName" meta:resourcekey="ddlSearchColumnAccountName">AccountName</asp:ListItem>
|
||||||
<asp:ListItem Value="SubscriberNumber" meta:resourcekey="ddlSearchColumnSubscriberNumber">Subscriber Number</asp:ListItem>
|
<asp:ListItem Value="SubscriberNumber" meta:resourcekey="ddlSearchColumnSubscriberNumber">Account Number</asp:ListItem>
|
||||||
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
||||||
CausesValidation="false"/>
|
CausesValidation="false"/>
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
|
@ -155,14 +155,5 @@ namespace WebsitePanel.Portal.HostedSolution {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.QuotaViewer usersQuota;
|
protected global::WebsitePanel.Portal.QuotaViewer usersQuota;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// FormComments control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.Localize FormComments;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,10 +54,13 @@
|
||||||
<td class="SubHead"><asp:Label ID="lblRecordData" runat="server" meta:resourcekey="lblRecordData" Text="Record Data:"></asp:Label></td>
|
<td class="SubHead"><asp:Label ID="lblRecordData" runat="server" meta:resourcekey="lblRecordData" Text="Record Data:"></asp:Label></td>
|
||||||
<td class="Normal" nowrap>
|
<td class="Normal" nowrap>
|
||||||
<asp:TextBox ID="txtRecordData" runat="server" Width="260px" CssClass="NormalTextBox"></asp:TextBox><uc1:SelectIPAddress ID="ipAddress" runat="server" />
|
<asp:TextBox ID="txtRecordData" runat="server" Width="260px" CssClass="NormalTextBox"></asp:TextBox><uc1:SelectIPAddress ID="ipAddress" runat="server" />
|
||||||
|
<!--
|
||||||
<asp:RequiredFieldValidator ID="valRequireData" runat="server" ControlToValidate="txtRecordData"
|
<asp:RequiredFieldValidator ID="valRequireData" runat="server" ControlToValidate="txtRecordData"
|
||||||
ErrorMessage="*" ValidationGroup="DnsRecord" Display="Dynamic"></asp:RequiredFieldValidator>
|
ErrorMessage="*" ValidationGroup="DnsRecord" Display="Dynamic"></asp:RequiredFieldValidator>
|
||||||
|
-->
|
||||||
<asp:CustomValidator ID="IPValidator" runat="server" ControlToValidate="txtRecordData" ValidationGroup="DnsRecord" Display="Dynamic" CssClass="NormalBold"
|
<asp:CustomValidator ID="IPValidator" runat="server" ControlToValidate="txtRecordData" ValidationGroup="DnsRecord" Display="Dynamic" CssClass="NormalBold"
|
||||||
OnServerValidate="Validate" Text="Please enter a valid IP" meta:resourcekey="IPValidator"/>
|
OnServerValidate="Validate" Text="Please enter a valid IP" meta:resourcekey="IPValidator" ValidateEmptyText="True" />
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr id="rowMXPriority" runat="server">
|
<tr id="rowMXPriority" runat="server">
|
||||||
|
|
|
@ -176,15 +176,22 @@ namespace WebsitePanel.Portal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
protected void Validate(object source, ServerValidateEventArgs args) {
|
protected void Validate(object source, ServerValidateEventArgs args) {
|
||||||
|
/*
|
||||||
var ip = args.Value;
|
var ip = args.Value;
|
||||||
System.Net.IPAddress ipaddr;
|
System.Net.IPAddress ipaddr;
|
||||||
|
if (string.IsNullOrEmpty(args.Value))
|
||||||
|
args.IsValid = true;
|
||||||
|
else
|
||||||
args.IsValid = System.Net.IPAddress.TryParse(ip, out ipaddr) && (ip.Contains(":") || ip.Contains(".")) &&
|
args.IsValid = System.Net.IPAddress.TryParse(ip, out ipaddr) && (ip.Contains(":") || ip.Contains(".")) &&
|
||||||
((ddlRecordType.SelectedValue == "A" && ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) ||
|
((ddlRecordType.SelectedValue == "A" && ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) ||
|
||||||
(ddlRecordType.SelectedValue == "AAAA" && ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6));
|
(ddlRecordType.SelectedValue == "AAAA" && ipaddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6));
|
||||||
|
*/
|
||||||
|
args.IsValid = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SaveRecord()
|
private void SaveRecord()
|
||||||
{
|
{
|
||||||
|
if (!string.IsNullOrEmpty(txtRecordData.Text))
|
||||||
if (!Page.IsValid) return;
|
if (!Page.IsValid) return;
|
||||||
|
|
||||||
GlobalDnsRecord record = new GlobalDnsRecord();
|
GlobalDnsRecord record = new GlobalDnsRecord();
|
||||||
|
|
|
@ -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.
|
||||||
|
@ -149,6 +148,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 +193,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>
|
||||||
|
|
|
@ -249,4 +249,7 @@
|
||||||
<data name="lblWmSvcNETBIOS.Text" xml:space="preserve">
|
<data name="lblWmSvcNETBIOS.Text" xml:space="preserve">
|
||||||
<value>NETBIOS Domain name:</value>
|
<value>NETBIOS Domain name:</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="txtPublicSharedIP.Text" xml:space="preserve">
|
||||||
|
<value>Web Sites Public Shared Address:</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -21,6 +21,14 @@
|
||||||
<uc1:SelectIPAddress ID="ipAddress" runat="server" ServerIdParam="ServerID" />
|
<uc1:SelectIPAddress ID="ipAddress" runat="server" ServerIdParam="ServerID" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Normal" width="200" nowrap>
|
||||||
|
<asp:Label ID="lblPublicSharedIP" runat="server" meta:resourcekey="lblPublicSharedIP" Text="Web Sites Public Shared IP Address:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td width="100%">
|
||||||
|
<asp:TextBox ID="txtPublicSharedIP" runat="server" Width="200" CssClass="NormalTextBox"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="Normal" valign="top">
|
<td class="Normal" valign="top">
|
||||||
<asp:Label ID="lblGroupName" runat="server" meta:resourcekey="lblGroupName" Text="Web Users Group Name:"></asp:Label>
|
<asp:Label ID="lblGroupName" runat="server" meta:resourcekey="lblGroupName" Text="Web Users Group Name:"></asp:Label>
|
||||||
|
|
|
@ -107,6 +107,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
//
|
//
|
||||||
ipAddress.AddressId = (settings["SharedIP"] != null) ? Utils.ParseInt(settings["SharedIP"], 0) : 0;
|
ipAddress.AddressId = (settings["SharedIP"] != null) ? Utils.ParseInt(settings["SharedIP"], 0) : 0;
|
||||||
ipAddress.SelectValueText = GetLocalizedString("ipAddress.SelectValueText");
|
ipAddress.SelectValueText = GetLocalizedString("ipAddress.SelectValueText");
|
||||||
|
txtPublicSharedIP.Text = settings["PublicSharedIP"];
|
||||||
|
|
||||||
txtWebGroupName.Text = settings["WebGroupName"];
|
txtWebGroupName.Text = settings["WebGroupName"];
|
||||||
chkAssignIPAutomatically.Checked = Utils.ParseBool(settings["AutoAssignDedicatedIP"], true);
|
chkAssignIPAutomatically.Checked = Utils.ParseBool(settings["AutoAssignDedicatedIP"], true);
|
||||||
|
@ -205,6 +206,7 @@ namespace WebsitePanel.Portal.ProviderControls
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
settings["SharedIP"] = ipAddress.AddressId.ToString();
|
settings["SharedIP"] = ipAddress.AddressId.ToString();
|
||||||
|
settings["PublicSharedIP"] = txtPublicSharedIP.Text.Trim();
|
||||||
settings["WebGroupName"] = txtWebGroupName.Text.Trim();
|
settings["WebGroupName"] = txtWebGroupName.Text.Trim();
|
||||||
settings["AutoAssignDedicatedIP"] = chkAssignIPAutomatically.Checked.ToString();
|
settings["AutoAssignDedicatedIP"] = chkAssignIPAutomatically.Checked.ToString();
|
||||||
|
|
||||||
|
|
|
@ -67,6 +67,24 @@ namespace WebsitePanel.Portal.ProviderControls {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.SelectIPAddress ipAddress;
|
protected global::WebsitePanel.Portal.SelectIPAddress ipAddress;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblPublicSharedIP 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 lblPublicSharedIP;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtPublicSharedIP 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 txtPublicSharedIP;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// lblGroupName control.
|
/// lblGroupName 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>
|
||||||
|
|
|
@ -26,6 +26,11 @@
|
||||||
<td class="SubHead" nowrap><asp:Label ID="lblDomainPointers" runat="server" meta:resourcekey="lblDomainPointers" Text="Domain Pointers:"></asp:Label></td>
|
<td class="SubHead" nowrap><asp:Label ID="lblDomainPointers" runat="server" meta:resourcekey="lblDomainPointers" Text="Domain Pointers:"></asp:Label></td>
|
||||||
<td class="Normal"><wsp:Quota ID="quotaDomainPointers" runat="server" QuotaName="OS.DomainPointers" DisplayGauge="True" /></td>
|
<td class="Normal"><wsp:Quota ID="quotaDomainPointers" runat="server" QuotaName="OS.DomainPointers" DisplayGauge="True" /></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr ID="pnlOrganizations" runat="server">
|
||||||
|
<td class="SubHead" nowrap><asp:Label ID="lblOrganizations" runat="server" meta:resourcekey="lblOrganizations" Text="Organizations:"></asp:Label></td>
|
||||||
|
<td class="Normal"><wsp:Quota ID="quotaOrganizations" runat="server" QuotaName="HostedSolution.Organizations" DisplayGauge="True" /></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
<tr ID="pnlUserAccounts" runat="server">
|
<tr ID="pnlUserAccounts" runat="server">
|
||||||
<td class="SubHead" nowrap><asp:Label ID="lblUserAccounts" runat="server" meta:resourcekey="lblUserAccounts" Text="User Accounts:"></asp:Label></td>
|
<td class="SubHead" nowrap><asp:Label ID="lblUserAccounts" runat="server" meta:resourcekey="lblUserAccounts" Text="User Accounts:"></asp:Label></td>
|
||||||
<td class="Normal"><wsp:Quota ID="quotaUserAccounts" runat="server" QuotaName="HostedSolution.Users" DisplayGauge="True" /></td>
|
<td class="Normal"><wsp:Quota ID="quotaUserAccounts" runat="server" QuotaName="HostedSolution.Users" DisplayGauge="True" /></td>
|
||||||
|
|
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