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);
 }
Exemple #2
0
 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);
 }
Exemple #3
0
 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);
 }
Exemple #6
0
 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);
 }
Exemple #7
0
        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());
 }
Exemple #9
0
 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);
 }
Exemple #10
0
 internal static bool IsFrontEndRole(MiniVirtualDirectory virtualDirectory, TopologyServerInfo serverInfo)
 {
     return((serverInfo.Role & ServerRole.Cafe) == ServerRole.Cafe && !virtualDirectory.Name.Contains("(Exchange Back End)"));
 }
Exemple #11
0
 private E12UnifiedMessagingService(TopologyServerInfo serverInfo, Uri url, ClientAccessType clientAccessType, AuthenticationMethod authenticationMethod, MiniVirtualDirectory virtualDirectory) : base(serverInfo, ServiceType.UnifiedMessaging, url, clientAccessType, authenticationMethod, virtualDirectory)
 {
 }
Exemple #12
0
 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;
 }
Exemple #13
0
 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;
 }
Exemple #17
0
        // 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);
        }
Exemple #18
0
 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;
 }
Exemple #19
0
        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);
        }
Exemple #20
0
 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);
 }
Exemple #21
0
 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;
 }