internal static bool TryCreateAvailabilityForeignConnectorService(MiniVirtualDirectory virtualDirectory, TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, out Service service) { if (virtualDirectory.IsAvailabilityForeignConnector) { service = new AvailabilityForeignConnectorService(serverInfo, url, clientAccessType, authenticationMethod, virtualDirectory); return(true); } service = null; return(false); }
public static bool TryCreateRpcHttpService(MiniVirtualDirectory virtualDirectory, TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, out Service service) { if (virtualDirectory.IsRpcHttp) { service = new RpcHttpService(serverInfo, url, clientAccessType, authenticationMethod, virtualDirectory); return(true); } service = null; return(false); }
internal static bool TryCreateUnifiedMessagingService(MiniVirtualDirectory virtualDirectory, TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, out Service service) { if (virtualDirectory.IsE12UM) { service = new E12UnifiedMessagingService(serverInfo, url, clientAccessType, authenticationMethod, virtualDirectory); return(true); } service = null; return(false); }
public static bool TryCreateMapiHttpService(MiniVirtualDirectory virtualDirectory, TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, out Service service) { EnumValidator.ThrowIfInvalid <ClientAccessType>(clientAccessType, "clientAccessType"); if (virtualDirectory.IsMapi) { service = new MapiHttpService(serverInfo, url, clientAccessType, virtualDirectory); return(true); } service = null; return(false); }
internal static Service CreateHttpService(MiniVirtualDirectory virtualDirectory, TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod) { foreach (ServiceTypeInfo serviceTypeInfo in ServiceTypeInfo.serviceTypeInfos) { ServiceTypeInfo.TryCreateHttpServiceDelegate tryCreateHttpServiceDelegate = serviceTypeInfo.tryCreateServiceDelegate as ServiceTypeInfo.TryCreateHttpServiceDelegate; Service result; if (tryCreateHttpServiceDelegate != null && tryCreateHttpServiceDelegate(virtualDirectory, serverInfo, url, clientAccessType, authenticationMethod, out result)) { return(result); } } throw new InvalidOperationException(ServerStrings.ExInvalidServiceType); }
internal static bool TryCreateOabService(MiniVirtualDirectory virtualDirectory, TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, out Service service) { if (virtualDirectory.IsOab) { MultiValuedProperty <ADObjectId> offlineAddressBooks = virtualDirectory.OfflineAddressBooks; HashSet <string> hashSet = new HashSet <string>(StringComparer.InvariantCultureIgnoreCase); for (int i = 0; i < offlineAddressBooks.Count; i++) { hashSet.Add(offlineAddressBooks[i].DistinguishedName); } service = new OabService(serverInfo, url, clientAccessType, authenticationMethod, virtualDirectory, hashSet); return(true); } service = null; return(false); }
private static void SelectUrl(ServiceType serviceType, MiniVirtualDirectory vdir, Dictionary <ServiceType, VDirInfo> e15Services, ref bool found) { if (found) { return; } Uri uri = vdir.ExternalUrl; if (uri == null && !GlobalServiceUrls.IsDatacenter) { uri = vdir.InternalUrl; } if (uri != null) { found = true; VDirInfo value = new VDirInfo(uri); e15Services[serviceType] = value; ExTraceGlobals.CafeTracer.TraceDebug <Uri>(0L, "[GlobalServiceUrls.SelectUrl] Found URL: {0}", uri); } }
private AvailabilityForeignConnectorService(TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, MiniVirtualDirectory virtualDirectory) : base(serverInfo, ServiceType.AvailabilityForeignConnector, url, clientAccessType, authenticationMethod, virtualDirectory) { this.AvailabilityForeignConnectorType = virtualDirectory.AvailabilityForeignConnectorType; this.AvailabilityForeignConnectorDomains = new ReadOnlyCollection <string>(virtualDirectory.AvailabilityForeignConnectorDomains.ToArray()); }
private OwaService(TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, MiniVirtualDirectory virtualDirectory) : base(serverInfo, ServiceType.OutlookWebAccess, url, clientAccessType, authenticationMethod, virtualDirectory) { this.AnonymousFeaturesEnabled = (virtualDirectory.AnonymousFeaturesEnabled == true); this.FailbackUrl = virtualDirectory.FailbackUrl; this.IntegratedFeaturesEnabled = (virtualDirectory.IntegratedFeaturesEnabled != null && virtualDirectory.IntegratedFeaturesEnabled != null && virtualDirectory.IntegratedFeaturesEnabled.Value); }
internal static bool IsFrontEndRole(MiniVirtualDirectory virtualDirectory, TopologyServerInfo serverInfo) { return((serverInfo.Role & ServerRole.Cafe) == ServerRole.Cafe && !virtualDirectory.Name.Contains("(Exchange Back End)")); }
private E12UnifiedMessagingService(TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, MiniVirtualDirectory virtualDirectory) : base(serverInfo, ServiceType.UnifiedMessaging, url, clientAccessType, authenticationMethod, virtualDirectory) { }
private RpcHttpService(TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, MiniVirtualDirectory virtualDirectory) : base(serverInfo, ServiceType.RpcHttp, url, clientAccessType, authenticationMethod, virtualDirectory) { this.IISAuthenticationMethods = Service.ConvertToReadOnlyCollection <AuthenticationMethod>(virtualDirectory.IISAuthenticationMethods); this.ExternalClientAuthenticationMethod = virtualDirectory.ExternalClientAuthenticationMethod; this.InternalClientAuthenticationMethod = virtualDirectory.InternalClientAuthenticationMethod; this.XropUrl = virtualDirectory.XropUrl; }
private EcpService(TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, MiniVirtualDirectory virtualDirectory) : base(serverInfo, ServiceType.ExchangeControlPanel, url, clientAccessType, authenticationMethod, virtualDirectory) { this.LiveIdAuthentication = virtualDirectory.LiveIdAuthentication; this.MetabasePath = virtualDirectory.MetabasePath; this.AdminEnabled = virtualDirectory.AdminEnabled; this.OwaOptionsEnabled = virtualDirectory.OwaOptionsEnabled; }
private MobileSyncService(TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, MiniVirtualDirectory virtualDirectory) : base(serverInfo, ServiceType.MobileSync, url, clientAccessType, authenticationMethod, virtualDirectory) { this.VirtualDirectoryIdentity = virtualDirectory.ToString(); this.IsCertEnrollEnabled = virtualDirectory.MobileClientCertificateProvisioningEnabled; this.CertificateAuthorityUrl = virtualDirectory.MobileClientCertificateAuthorityURL; this.CertEnrollTemplateName = virtualDirectory.MobileClientCertTemplateName; }
private MapiHttpService(TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, MiniVirtualDirectory virtualDirectory) : base(serverInfo, ServiceType.MapiHttp, url, clientAccessType, AuthenticationMethod.None, virtualDirectory) { this.LastConfigurationTime = (virtualDirectory.WhenChangedUTC ?? (virtualDirectory.WhenCreatedUTC ?? DateTime.MinValue)); }
private WebServicesService(TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, MiniVirtualDirectory virtualDirectory) : base(serverInfo, ServiceType.WebServices, url, clientAccessType, authenticationMethod, virtualDirectory) { this.ServerDistinguishedName = virtualDirectory.Server.DistinguishedName; this.MRSProxyEnabled = virtualDirectory.MRSProxyEnabled; }
// Token: 0x060003B6 RID: 950 RVA: 0x0001573C File Offset: 0x0001393C internal static ADObject CreateAndInitializeConfigObject <TConfigObject>(ADPropertyBag propertyBag, ADRawEntry dummyObject, IDirectorySession directorySession) where TConfigObject : IConfigurable, new() { ArgumentValidator.ThrowIfNull("propertyBag", propertyBag); MultiValuedProperty <string> multiValuedProperty = (MultiValuedProperty <string>)propertyBag[ADObjectSchema.ObjectClass]; ADObject adobject; if (dummyObject is MiniTopologyServer) { adobject = new MiniTopologyServer(); } else if (dummyObject is MiniVirtualDirectory) { adobject = new MiniVirtualDirectory(); } else if (dummyObject is MiniEmailTransport) { adobject = new MiniEmailTransport(); } else if (dummyObject is MiniReceiveConnector) { adobject = new MiniReceiveConnector(); } else if (multiValuedProperty.Contains(ADWebServicesVirtualDirectory.MostDerivedClass)) { adobject = new ADWebServicesVirtualDirectory(); } else if (multiValuedProperty.Contains(ADE12UMVirtualDirectory.MostDerivedClass)) { adobject = new ADE12UMVirtualDirectory(); } else if (multiValuedProperty.Contains("msExchMobileVirtualDirectory")) { adobject = new ADMobileVirtualDirectory(); } else if (multiValuedProperty.Contains(ADOwaVirtualDirectory.MostDerivedClass)) { adobject = new ADOwaVirtualDirectory(); } else if (multiValuedProperty.Contains(ADRpcHttpVirtualDirectory.MostDerivedClass)) { adobject = new ADRpcHttpVirtualDirectory(); } else if (multiValuedProperty.Contains(ADMapiVirtualDirectory.MostDerivedClass)) { adobject = new ADMapiVirtualDirectory(); } else if (multiValuedProperty.Contains(ADAvailabilityForeignConnectorVirtualDirectory.MostDerivedClass)) { adobject = new ADAvailabilityForeignConnectorVirtualDirectory(); } else if (multiValuedProperty.Contains(ADOabVirtualDirectory.MostDerivedClass)) { adobject = new ADOabVirtualDirectory(); } else if (multiValuedProperty.Contains(ADEcpVirtualDirectory.MostDerivedClass)) { adobject = new ADEcpVirtualDirectory(); } else if (multiValuedProperty.Contains(Pop3AdConfiguration.MostDerivedClass)) { adobject = new Pop3AdConfiguration(); } else if (multiValuedProperty.Contains(Imap4AdConfiguration.MostDerivedClass)) { adobject = new Imap4AdConfiguration(); } else if (multiValuedProperty.Contains("mailGateway")) { if (multiValuedProperty.Contains(SmtpSendConnectorConfig.MostDerivedClass)) { adobject = new SmtpSendConnectorConfig(); } else if (multiValuedProperty.Contains(DeliveryAgentConnector.MostDerivedClass)) { adobject = new DeliveryAgentConnector(); } else if (propertyBag.Contains(ForeignConnectorSchema.DropDirectory)) { adobject = new ForeignConnector(); } else { adobject = new LegacyGatewayConnector(); } } else if (multiValuedProperty.Contains("msExchEdgeSyncEhfConnector")) { adobject = new EdgeSyncEhfConnector(); } else { if (!multiValuedProperty.Contains("msExchEdgeSyncMservConnector")) { return(ADObjectFactory.CreateAndInitializeObject <TConfigObject>(propertyBag, directorySession)); } adobject = new EdgeSyncMservConnector(); } adobject.m_Session = directorySession; adobject.propertyBag = propertyBag; adobject.Initialize(); adobject.ResetChangeTracking(true); if (directorySession != null) { adobject.SetIsReadOnly(directorySession.ReadOnly); } return(adobject); }
internal HttpService(TopologyServerInfo serverInfo, ServiceType serviceType, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, MiniVirtualDirectory virtualDirectory) : base(serverInfo, serviceType, clientAccessType, authenticationMethod) { this.Url = url; this.IsFrontEnd = HttpService.IsFrontEndRole(virtualDirectory, serverInfo); this.ADObjectId = virtualDirectory.Id; }
private void AddHttpServiceToDictionaries(string localServerFqdn, Dictionary <ServiceType, List <Service> > serviceLists, TopologyServerInfo serverInfo, MiniVirtualDirectory virtualDirectory, ClientAccessType clientAccessType, Uri url, AuthenticationMethod authenticationMethod) { Service service = ServiceTypeInfo.CreateHttpService(virtualDirectory, serverInfo, url, clientAccessType, authenticationMethod); ServiceTopology.AddServiceToServiceListDictionary(serviceLists, service); ExTraceGlobals.ServiceDiscoveryTracer.TraceDebug <Service, string, Site>((long)this.GetHashCode(), "ServiceTopology::AddServiceToDictionaries. Found Service. Service = {0}. ServerFqdn = {1}. Site = {2}.", service, serverInfo.ServerFullyQualifiedDomainName, serverInfo.Site); }
internal static bool TryCreateHttpService(MiniVirtualDirectory virtualDirectory, TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, out Service service) { service = new HttpService(serverInfo, ServiceType.Invalid, url, clientAccessType, authenticationMethod, virtualDirectory); return(true); }
private OabService(TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, MiniVirtualDirectory virtualDirectory, HashSet <string> linkedOfflineAddressBookDistinguishedNames) : base(serverInfo, ServiceType.OfflineAddressBook, url, clientAccessType, authenticationMethod, virtualDirectory) { this.LinkedOfflineAddressBookDistinguishedNames = linkedOfflineAddressBookDistinguishedNames; }