Updated ABP Code to check Exchange Version for SP2 and App Setting
This commit is contained in:
parent
2a5b26ba1c
commit
1ca6c02fd1
3 changed files with 68 additions and 35 deletions
|
@ -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);
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
<OldToolsVersion>3.5</OldToolsVersion>
|
||||
<UpgradeBackupLocation>
|
||||
</UpgradeBackupLocation>
|
||||
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
|
@ -80,31 +80,31 @@
|
|||
</Reference>
|
||||
<Reference Include="Microsoft.Exchange.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Common.dll</HintPath>
|
||||
<HintPath>..\..\Bin\Microsoft.Exchange.Common.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Exchange.Data, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Data.dll</HintPath>
|
||||
<HintPath>..\..\Bin\Microsoft.Exchange.Data.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Exchange.Data.Directory, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Data.Directory.dll</HintPath>
|
||||
<HintPath>..\..\Bin\Microsoft.Exchange.Data.Directory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Exchange.Data.Storage, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Data.Storage.dll</HintPath>
|
||||
<HintPath>..\..\Bin\Microsoft.Exchange.Data.Storage.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Exchange.Diagnostics, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Diagnostics.dll</HintPath>
|
||||
<HintPath>..\..\Bin\Microsoft.Exchange.Diagnostics.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Exchange.Extensibility.Internal, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Extensibility.Internal.dll</HintPath>
|
||||
<HintPath>..\..\Bin\Microsoft.Exchange.Extensibility.Internal.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Exchange.Net, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\..\..\WebsitePanel.bak\WebsitePanel\Branches\1.2.0\Lib\References\Microsoft\Microsoft.Exchange.Net.dll</HintPath>
|
||||
<HintPath>..\..\Bin\Microsoft.Exchange.Net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.SharePoint">
|
||||
<HintPath>..\..\Lib\References\Microsoft\Microsoft.SharePoint.dll</HintPath>
|
||||
|
@ -123,6 +123,14 @@
|
|||
<Reference Include="System.Web" />
|
||||
<Reference Include="System.Web.Services" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="WebsitePanel.Providers.Base, Version=1.2.0.0, Culture=neutral, PublicKeyToken=da8782a6fc4d0081, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\bin\WebsitePanel.Providers.Base.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WebsitePanel.Server.Utils, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\bin\WebsitePanel.Server.Utils.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="..\VersionInfo.cs">
|
||||
|
@ -145,16 +153,6 @@
|
|||
<Compile Include="OrganizationProvider.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.Server.Utils\WebsitePanel.Server.Utils.csproj">
|
||||
<Project>{E91E52F3-9555-4D00-B577-2B1DBDD87CA7}</Project>
|
||||
<Name>WebsitePanel.Server.Utils</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WebReferences Include="Web References\" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
</configSections>
|
||||
<appSettings>
|
||||
<add key="WebsitePanel.HyperV.UseDiskPartClearReadOnlyFlag" value="false"/>
|
||||
<add key="WebsitePanel.Exchange.ClearQueryBaseDN" value="false" />
|
||||
<add key="WebsitePanel.Exchange.enableSP2abp" value="false" />
|
||||
<add key="SCVMMServerName" value=""/>
|
||||
<add key="SCVMMServerPort" value=""/>
|
||||
</appSettings>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue