diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2007.cs b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2007.cs index d93036a3..b83b08d0 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2007.cs +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/Exchange2007.cs @@ -67,6 +67,7 @@ namespace WebsitePanel.Providers.HostedSolution #region Constants private const string CONFIG_CLEAR_QUERYBASEDN = "WebsitePanel.Exchange.ClearQueryBaseDN"; + private const string CONFIG_ENABLESP2ABP = "WebsitePanel.Exchange.enableSP2abp"; #endregion #region Properties @@ -841,11 +842,19 @@ namespace WebsitePanel.Providers.HostedSolution info.OfflineAddressBook = oabId; //create ABP - string abpId = CreateAddressPolicy(runSpace, organizationId); - transaction.RegisterNewAddressPolicy(abpId); - ExchangeLog.LogInfo(" Address Policy: {0}", abpId); - } + bool enableSP2abp = false; + if (ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP] != null) + enableSP2abp = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP]); + Version exchangeVersion = GetExchangeVersion(); + + if (enableSP2abp && (exchangeVersion >= new Version(14, 2))) + { + string abpId = CreateAddressPolicy(runSpace, organizationId); + transaction.RegisterNewAddressPolicy(abpId); + ExchangeLog.LogInfo(" Address Policy: {0}", abpId); + } + } catch (Exception ex) { ExchangeLog.LogError("CreateOrganizationOfflineAddressBookInternal", ex); @@ -930,16 +939,27 @@ namespace WebsitePanel.Providers.HostedSolution //delete ABP - string adpstring = GetAddressPolicyName(organizationId); - try + bool enableSP2abp = false; + if (ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP] != null) + enableSP2abp = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP]); + Version exchangeVersion = GetExchangeVersion(); + + if (enableSP2abp && (exchangeVersion >= new Version(14, 2))) { - if (!string.IsNullOrEmpty(adpstring)) - DeleteAddressPolicy(runSpace, adpstring); - } - catch (Exception ex) - { - ret = false; - ExchangeLog.LogError("Could not delete Address Policy " + globalAddressList, ex); + + + string adpstring = GetAddressPolicyName(organizationId); + + try + { + if (!string.IsNullOrEmpty(adpstring)) + DeleteAddressPolicy(runSpace, adpstring); + } + catch (Exception ex) + { + ret = false; + ExchangeLog.LogError("Could not delete Address Policy " + globalAddressList, ex); + } } //delete OAB @@ -1770,6 +1790,7 @@ namespace WebsitePanel.Providers.HostedSolution int attempts = 0; string id = null; + Version exchangeVersion = GetExchangeVersion(); try @@ -1828,7 +1849,13 @@ namespace WebsitePanel.Providers.HostedSolution cmd.Parameters.Add("CustomAttribute3", windowsEmailAddress); cmd.Parameters.Add("PrimarySmtpAddress", upn); cmd.Parameters.Add("WindowsEmailAddress", upn); - cmd.Parameters.Add("AddressBookPolicy", adpstring); + + bool enableSP2abp = false; + if (ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP] != null) + enableSP2abp = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP]); + if (enableSP2abp && (exchangeVersion >= new Version(14, 2))) + cmd.Parameters.Add("AddressBookPolicy", adpstring); + cmd.Parameters.Add("UseDatabaseQuotaDefaults", new bool?(false)); cmd.Parameters.Add("UseDatabaseRetentionDefaults", false); cmd.Parameters.Add("IssueWarningQuota", ConvertKBToUnlimited(issueWarningKB)); @@ -1849,7 +1876,6 @@ namespace WebsitePanel.Providers.HostedSolution bool clearQueryBaseDN = false; if (ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN] != null) clearQueryBaseDN = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN]); - Version exchangeVersion = GetExchangeVersion(); if (!(clearQueryBaseDN && (exchangeVersion >= new Version(14, 1)))) SetADObjectPropertyValue(mailbox, "msExchQueryBaseDN", globalAddressListDN); @@ -1910,6 +1936,8 @@ namespace WebsitePanel.Providers.HostedSolution ExchangeTransaction transaction = StartTransaction(); Runspace runSpace = null; + Version exchangeVersion = GetExchangeVersion(); + try { runSpace = OpenRunspace(); @@ -1952,7 +1980,13 @@ namespace WebsitePanel.Providers.HostedSolution cmd.Parameters.Add("CustomAttribute3", windowsEmailAddress); cmd.Parameters.Add("PrimarySmtpAddress", upn); cmd.Parameters.Add("WindowsEmailAddress", upn); - cmd.Parameters.Add("AddressBookPolicy", adpstring); + + bool enableSP2abp = false; + if (ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP] != null) + enableSP2abp = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_ENABLESP2ABP]); + if (enableSP2abp && (exchangeVersion >= new Version(14, 2))) + cmd.Parameters.Add("AddressBookPolicy", adpstring); + cmd.Parameters.Add("UseDatabaseQuotaDefaults", new bool?(false)); cmd.Parameters.Add("UseDatabaseRetentionDefaults", false); cmd.Parameters.Add("IssueWarningQuota", ConvertKBToUnlimited(issueWarningKB)); @@ -1970,7 +2004,6 @@ namespace WebsitePanel.Providers.HostedSolution bool clearQueryBaseDN = false; if (ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN] != null) clearQueryBaseDN = Boolean.Parse(ConfigurationManager.AppSettings[CONFIG_CLEAR_QUERYBASEDN]); - Version exchangeVersion = GetExchangeVersion(); if (!(clearQueryBaseDN && (exchangeVersion >= new Version(14, 1)))) SetADObjectPropertyValue(mailbox, "msExchQueryBaseDN", globalAddressListDN); diff --git a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/WebsitePanel.Providers.HostedSolution.csproj b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/WebsitePanel.Providers.HostedSolution.csproj index 70640894..dbdd2a0d 100644 --- a/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/WebsitePanel.Providers.HostedSolution.csproj +++ b/WebsitePanel/Sources/WebsitePanel.Providers.HostedSolution/WebsitePanel.Providers.HostedSolution.csproj @@ -15,7 +15,7 @@ 3.5 - v4.0 + v3.5 publish\ true Disk @@ -80,31 +80,31 @@ False - ..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Common.dll + ..\..\Bin\Microsoft.Exchange.Common.dll False - ..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Data.dll + ..\..\Bin\Microsoft.Exchange.Data.dll False - ..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Data.Directory.dll + ..\..\Bin\Microsoft.Exchange.Data.Directory.dll False - ..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Data.Storage.dll + ..\..\Bin\Microsoft.Exchange.Data.Storage.dll False - ..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Diagnostics.dll + ..\..\Bin\Microsoft.Exchange.Diagnostics.dll False - ..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Extensibility.Internal.dll + ..\..\Bin\Microsoft.Exchange.Extensibility.Internal.dll False - ..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Net.dll + ..\..\Bin\Microsoft.Exchange.Net.dll ..\..\Lib\References\Microsoft\Microsoft.SharePoint.dll @@ -123,6 +123,14 @@ + + False + ..\..\..\bin\WebsitePanel.Providers.Base.dll + + + False + ..\..\..\bin\WebsitePanel.Server.Utils.dll + @@ -145,16 +153,6 @@ - - - {684C932A-6C75-46AC-A327-F3689D89EB42} - WebsitePanel.Providers.Base - - - {E91E52F3-9555-4D00-B577-2B1DBDD87CA7} - WebsitePanel.Server.Utils - - diff --git a/WebsitePanel/Sources/WebsitePanel.Server/Web.config b/WebsitePanel/Sources/WebsitePanel.Server/Web.config index 133e5739..dacf072e 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server/Web.config +++ b/WebsitePanel/Sources/WebsitePanel.Server/Web.config @@ -8,6 +8,8 @@ + +