public static SmtpX509Identifier FopeCertificateName(int instance) { string[] defaultTable = new string[] { "CN=MSIT Machine Auth CA 2, DC=redmond, DC=corp, DC=microsoft, DC=com", "CN=CNNIC SSL, O=CNNIC SSL, C=CN", "CN=MS Passport Test Sub CA, DC=redmond, DC=corp, DC=microsoft, DC=com" }; string[] defaultTable2 = new string[] { "CN=mail.protection.outlook.com, OU=Forefront Online Protection for Exchange, O=Microsoft, L=Redmond, S=WA, C=US", "CN=*.mail.protection.partner.outlook.cn, OU=Office365, O=Shanghai Blue Cloud Technology Co. Ltd, L=Shanghai, S=Shanghai, C=CN", "CN=*.mail.o365filtering-int.com, OU=Forefront Online Protection for Exchange, O=Microsoft, L=Redmond, S=Washington, C=US" }; string[] defaultTable3 = new string[] { "AcceptCloudServicesMail", "AcceptCloudServicesMail", "AcceptCloudServicesMail" }; string value = Configuration.GetValue <string>("FopeCertificateIssuer", defaultTable, instance); string value2 = Configuration.GetValue <string>("FopeCertificateSubject", defaultTable2, instance); string value3 = Configuration.GetValue <string>("FopeCertificatePermissions", defaultTable3, instance); return(SmtpX509Identifier.Parse(string.Format("<I>{0}<S>{1}:{2}", value, value2, value3))); }
public static IConfigurable PrepareDataObject(PropertyBag fields, HybridConfiguration dataObject, IConfigDataProvider dataSession, HybridConfigurationTaskUtility.GetUniqueObject getDataObjectFunc, Task.TaskErrorLoggingDelegate writeErrorFunc) { MultiValuedProperty <ADObjectId> clientAccessServers = dataObject.ClientAccessServers; if (fields.IsModified("ClientAccessServers")) { ADPropertyDefinition clientAccessServers2 = HybridConfigurationSchema.ClientAccessServers; HybridConfigurationTaskUtility.ServerCriterion[] array = new HybridConfigurationTaskUtility.ServerCriterion[2]; array[0] = new HybridConfigurationTaskUtility.ServerCriterion((Server s) => s.IsClientAccessServer, new Func <string, LocalizedString>(HybridStrings.HybridErrorServerNotCAS)); array[1] = new HybridConfigurationTaskUtility.ServerCriterion((Server s) => s.IsE14OrLater, new Func <string, LocalizedString>(HybridStrings.HybridErrorServerNotE14CAS)); dataObject.ClientAccessServers = HybridConfigurationTaskUtility.ValidateServers(clientAccessServers2, dataSession, fields, getDataObjectFunc, writeErrorFunc, array); } if (fields.IsModified("SendingTransportServers")) { ADPropertyDefinition sendingTransportServers = HybridConfigurationSchema.SendingTransportServers; HybridConfigurationTaskUtility.ServerCriterion[] array2 = new HybridConfigurationTaskUtility.ServerCriterion[2]; array2[0] = new HybridConfigurationTaskUtility.ServerCriterion((Server s) => s.IsHubTransportServer, new Func <string, LocalizedString>(HybridStrings.HybridErrorSendingTransportServerNotHub)); array2[1] = new HybridConfigurationTaskUtility.ServerCriterion((Server s) => s.IsE15OrLater, new Func <string, LocalizedString>(HybridStrings.HybridErrorSendingTransportServerNotE15Hub)); dataObject.SendingTransportServers = HybridConfigurationTaskUtility.ValidateServers(sendingTransportServers, dataSession, fields, getDataObjectFunc, writeErrorFunc, array2); } if (fields.IsModified("ReceivingTransportServers")) { ADPropertyDefinition receivingTransportServers = HybridConfigurationSchema.ReceivingTransportServers; HybridConfigurationTaskUtility.ServerCriterion[] array3 = new HybridConfigurationTaskUtility.ServerCriterion[2]; array3[0] = new HybridConfigurationTaskUtility.ServerCriterion((Server s) => s.IsFrontendTransportServer, new Func <string, LocalizedString>(HybridStrings.HybridErrorReceivingTransportServerNotFrontEnd)); array3[1] = new HybridConfigurationTaskUtility.ServerCriterion((Server s) => s.IsE15OrLater, new Func <string, LocalizedString>(HybridStrings.HybridErrorReceivingTransportServerNotE15FrontEnd)); dataObject.ReceivingTransportServers = HybridConfigurationTaskUtility.ValidateServers(receivingTransportServers, dataSession, fields, getDataObjectFunc, writeErrorFunc, array3); } if (fields.IsModified("EdgeTransportServers")) { ADPropertyDefinition edgeTransportServers = HybridConfigurationSchema.EdgeTransportServers; HybridConfigurationTaskUtility.ServerCriterion[] array4 = new HybridConfigurationTaskUtility.ServerCriterion[2]; array4[0] = new HybridConfigurationTaskUtility.ServerCriterion((Server s) => s.IsEdgeServer, new Func <string, LocalizedString>(HybridStrings.HybridErrorServerNotEdge)); array4[1] = new HybridConfigurationTaskUtility.ServerCriterion((Server s) => s.IsE14Sp1OrLater, new Func <string, LocalizedString>(HybridStrings.HybridErrorServerNotE14Edge)); dataObject.EdgeTransportServers = HybridConfigurationTaskUtility.ValidateServers(edgeTransportServers, dataSession, fields, getDataObjectFunc, writeErrorFunc, array4); } if (fields.IsModified("TlsCertificateName")) { string text = fields["TlsCertificateName"] as string; dataObject.TlsCertificateName = ((text == null) ? null : SmtpX509Identifier.Parse(text)); } if (fields.IsModified("OnPremisesSmartHost")) { dataObject.OnPremisesSmartHost = (SmtpDomain)fields["OnPremisesSmartHost"]; } if (fields.IsModified("Domains")) { dataObject.Domains = (MultiValuedProperty <AutoDiscoverSmtpDomain>)fields["Domains"]; } if (fields.IsModified("Features")) { dataObject.Features = (MultiValuedProperty <HybridFeature>)fields["Features"]; } if (fields.IsModified("ExternalIPAddresses")) { dataObject.ExternalIPAddresses = HybridConfigurationTaskUtility.ValidateExternalIPAddresses((MultiValuedProperty <IPRange>)fields["ExternalIPAddresses"], writeErrorFunc); } if (fields.IsModified("ServiceInstance")) { dataObject.ServiceInstance = (int)fields["ServiceInstance"]; } return(dataObject); }