Exemple #1
0
        private static string GetProvisioningUrl(EdgeSyncEhfConnector connector)
        {
            Uri provisioningUrl = connector.ProvisioningUrl;

            EhfSynchronizationProvider.ValidateProvisioningUrl(provisioningUrl, connector.AuthenticationCredential, connector.DistinguishedName);
            return(provisioningUrl.AbsoluteUri);
        }
Exemple #2
0
        public static EdgeSyncEhfConnector GetConnector(IConfigurationSession session, EdgeSyncEhfConnectorIdParameter connectorId, Task task)
        {
            EdgeSyncEhfConnector connector = null;

            ADNotificationAdapter.TryRunADOperation(delegate()
            {
                if (connectorId != null)
                {
                    if (connectorId.InternalADObjectId != null)
                    {
                        connector = session.Read <EdgeSyncEhfConnector>(connectorId.InternalADObjectId);
                        return;
                    }
                }
                else
                {
                    connector = Utils.FindEnabledEhfSyncConnector(session, null);
                }
            });
            if (connector == null)
            {
                task.WriteError(new InvalidOperationException("Unable to find EHF connector object"), ErrorCategory.InvalidOperation, null);
            }
            return(connector);
        }
Exemple #3
0
        public override void Initialize(EdgeSyncConnector connector)
        {
            EdgeSyncEhfConnector connector2 = (EdgeSyncEhfConnector)connector;

            this.InitializeIdentity(connector2);
            this.InitializeTargetServerConfig(connector2);
        }
Exemple #4
0
 public EhfTargetServerConfig(EdgeSyncEhfConnector connector, Uri internetWebProxy) : base(connector.Name, EhfTargetServerConfig.GetProvisioningUrl(connector), connector.PrimaryLeaseLocation, connector.BackupLeaseLocation)
 {
     this.internetWebProxy = internetWebProxy;
     this.userName         = null;
     this.password         = null;
     if (connector.AuthenticationCredential != null)
     {
         this.userName = connector.AuthenticationCredential.UserName;
         this.password = connector.AuthenticationCredential.Password;
     }
     this.version          = connector.Version;
     this.adminSyncEnabled = connector.AdminSyncEnabled;
     this.resellerId       = EhfSynchronizationProvider.GetResellerId(connector);
     this.ehfSyncAppConfig = new EhfSyncAppConfig();
 }
Exemple #5
0
        public static int GetResellerId(EdgeSyncEhfConnector connector)
        {
            int result;

            if (!int.TryParse(connector.ResellerId, out result))
            {
                string text = string.Format(CultureInfo.InvariantCulture, "EHF connector <{0}> conatins invalid Reseller ID <{1}>; reseller ID must be an integer value", new object[]
                {
                    connector.DistinguishedName,
                    connector.ResellerId ?? "null"
                });
                EhfSynchronizationProvider.tracer.TraceError <string>((long)connector.GetHashCode(), "{0}", text);
                throw new ExDirectoryException(new FormatException(text));
            }
            return(result);
        }
        internal override bool ReadConnectorLeasePath(IConfigurationSession session, ADObjectId rootId, out string primaryLeasePath, out string backupLeasePath, out bool hasOneConnectorEnabledInCurrentForest)
        {
            string text;

            backupLeasePath  = (text = null);
            primaryLeasePath = text;
            hasOneConnectorEnabledInCurrentForest = false;
            EdgeSyncEhfConnector edgeSyncEhfConnector = base.FindSiteEdgeSyncConnector <EdgeSyncEhfConnector>(session, rootId, out hasOneConnectorEnabledInCurrentForest);

            if (edgeSyncEhfConnector == null)
            {
                return(false);
            }
            primaryLeasePath = Path.Combine(edgeSyncEhfConnector.PrimaryLeaseLocation, "ehf.lease");
            backupLeasePath  = Path.Combine(edgeSyncEhfConnector.BackupLeaseLocation, "ehf.lease");
            return(true);
        }
Exemple #7
0
        private void InitializeTargetServerConfig(EdgeSyncEhfConnector connector)
        {
            EhfTargetServerConfig ehfTargetServerConfig = new EhfTargetServerConfig(connector, EdgeSyncSvc.EdgeSync.Topology.LocalServer.InternetWebProxy);

            this.targetServerConfigs = new List <TargetServerConfig>(1);
            this.targetServerConfigs.Add(ehfTargetServerConfig);
            this.ehfWebServiceVersion = ehfTargetServerConfig.EhfWebServiceVersion;
            this.adminSyncInterval    = ehfTargetServerConfig.EhfSyncAppConfig.EhfAdminSyncInterval;
            this.adminSyncErrorTracker.Initialize(ehfTargetServerConfig.EhfSyncAppConfig);
            EhfSynchronizationProvider.tracer.TraceDebug((long)this.GetHashCode(), "Initialized target server configuration for connector: <{0}> ProvisioningUrl: <{1}> PrimaryLeaseLocation: <{2}> BackupLeaseLocation: <{3}> Version: <{4}>", new object[]
            {
                ehfTargetServerConfig.Name,
                ehfTargetServerConfig.ProvisioningUrl,
                ehfTargetServerConfig.PrimaryLeaseLocation,
                ehfTargetServerConfig.BackupLeaseLocation,
                connector.Version
            });
        }
Exemple #8
0
        private void InitializeIdentity(EdgeSyncEhfConnector connector)
        {
            ADObjectId id = connector.Id;

            if (id.Depth > 2)
            {
                string name = id.AncestorDN(2).Name;
                this.identity = string.Format(CultureInfo.InvariantCulture, "{0}\\{1}", new object[]
                {
                    name,
                    connector.Name
                });
            }
            else
            {
                this.identity = id.DistinguishedName;
            }
            EhfSynchronizationProvider.tracer.TraceDebug <string, string>((long)this.GetHashCode(), "Initialized provider identity to <{0}> based on the connector DN <{1}>", this.identity, id.DistinguishedName);
        }
 public EdgeSyncEhfConnectorIdParameter(EdgeSyncEhfConnector connector) : base(connector.Id)
 {
 }
Exemple #10
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);
        }