internal ReplicationConnectionCollection GetOutboundConnectionsHelper() { // this is the first time that user tries to retrieve this property, so get it from the directory if (_outbound == null) { // search base is the site container string siteName = (this is DomainController) ? ((DomainController)this).SiteObjectName : ((AdamInstance)this).SiteObjectName; DirectoryEntry de = DirectoryEntryManager.GetDirectoryEntry(Utils.GetNewDirectoryContext(Name, DirectoryContextType.DirectoryServer, context), siteName); string serverName = (this is DomainController) ? ((DomainController)this).ServerObjectName : ((AdamInstance)this).ServerObjectName; ADSearcher adSearcher = new ADSearcher(de, "(&(objectClass=nTDSConnection)(objectCategory=nTDSConnection)(fromServer=CN=NTDS Settings," + serverName + "))", new string[] { "objectClass", "cn" }, SearchScope.Subtree); SearchResultCollection results = null; DirectoryContext newContext = Utils.GetNewDirectoryContext(Name, DirectoryContextType.DirectoryServer, context); try { results = adSearcher.FindAll(); _outbound = new ReplicationConnectionCollection(); foreach (SearchResult result in results) { ReplicationConnection con = new ReplicationConnection(newContext, result.GetDirectoryEntry(), (string)result.Properties["cn"][0]); _outbound.Add(con); } } catch (COMException e) { throw ExceptionHelper.GetExceptionFromCOMException(newContext, e); } finally { if (results != null) { results.Dispose(); } de.Dispose(); } } return(_outbound); }
internal ReplicationConnectionCollection GetInboundConnectionsHelper() { if (_inbound == null) { // construct the replicationconnection collection _inbound = new ReplicationConnectionCollection(); DirectoryContext newContext = Utils.GetNewDirectoryContext(Name, DirectoryContextType.DirectoryServer, context); // this is the first time that user tries to retrieve this property, so get it from the directory string serverName = (this is DomainController) ? ((DomainController)this).ServerObjectName : ((AdamInstance)this).ServerObjectName; string srchDN = "CN=NTDS Settings," + serverName; DirectoryEntry de = DirectoryEntryManager.GetDirectoryEntry(Utils.GetNewDirectoryContext(Name, DirectoryContextType.DirectoryServer, context), srchDN); ADSearcher adSearcher = new ADSearcher(de, "(&(objectClass=nTDSConnection)(objectCategory=nTDSConnection))", new string[] { "cn" }, SearchScope.OneLevel); SearchResultCollection srchResults = null; try { srchResults = adSearcher.FindAll(); foreach (SearchResult r in srchResults) { ReplicationConnection con = new ReplicationConnection(newContext, r.GetDirectoryEntry(), (string)PropertyManager.GetSearchResultPropertyValue(r, PropertyManager.Cn)); _inbound.Add(con); } } catch (COMException e) { throw ExceptionHelper.GetExceptionFromCOMException(newContext, e); } finally { if (srchResults != null) { srchResults.Dispose(); } de.Dispose(); } } return(_inbound); }
internal ReplicationConnectionCollection GetOutboundConnectionsHelper() { // this is the first time that user tries to retrieve this property, so get it from the directory if (_outbound == null) { // search base is the site container string siteName = (this is DomainController) ? ((DomainController)this).SiteObjectName : ((AdamInstance)this).SiteObjectName; DirectoryEntry de = DirectoryEntryManager.GetDirectoryEntry(Utils.GetNewDirectoryContext(Name, DirectoryContextType.DirectoryServer, context), siteName); string serverName = (this is DomainController) ? ((DomainController)this).ServerObjectName : ((AdamInstance)this).ServerObjectName; ADSearcher adSearcher = new ADSearcher(de, "(&(objectClass=nTDSConnection)(objectCategory=nTDSConnection)(fromServer=CN=NTDS Settings," + serverName + "))", new string[] { "objectClass", "cn" }, SearchScope.Subtree); SearchResultCollection results = null; DirectoryContext newContext = Utils.GetNewDirectoryContext(Name, DirectoryContextType.DirectoryServer, context); try { results = adSearcher.FindAll(); _outbound = new ReplicationConnectionCollection(); foreach (SearchResult result in results) { ReplicationConnection con = new ReplicationConnection(newContext, result.GetDirectoryEntry(), (string)result.Properties["cn"][0]); _outbound.Add(con); } } catch (COMException e) { throw ExceptionHelper.GetExceptionFromCOMException(newContext, e); } finally { if (results != null) results.Dispose(); de.Dispose(); } } return _outbound; }
internal ReplicationConnectionCollection GetInboundConnectionsHelper() { if (_inbound == null) { // construct the replicationconnection collection _inbound = new ReplicationConnectionCollection(); DirectoryContext newContext = Utils.GetNewDirectoryContext(Name, DirectoryContextType.DirectoryServer, context); // this is the first time that user tries to retrieve this property, so get it from the directory string serverName = (this is DomainController) ? ((DomainController)this).ServerObjectName : ((AdamInstance)this).ServerObjectName; string srchDN = "CN=NTDS Settings," + serverName; DirectoryEntry de = DirectoryEntryManager.GetDirectoryEntry(Utils.GetNewDirectoryContext(Name, DirectoryContextType.DirectoryServer, context), srchDN); ADSearcher adSearcher = new ADSearcher(de, "(&(objectClass=nTDSConnection)(objectCategory=nTDSConnection))", new string[] { "cn" }, SearchScope.OneLevel); SearchResultCollection srchResults = null; try { srchResults = adSearcher.FindAll(); foreach (SearchResult r in srchResults) { ReplicationConnection con = new ReplicationConnection(newContext, r.GetDirectoryEntry(), (string)PropertyManager.GetSearchResultPropertyValue(r, PropertyManager.Cn)); _inbound.Add(con); } } catch (COMException e) { throw ExceptionHelper.GetExceptionFromCOMException(newContext, e); } finally { if (srchResults != null) srchResults.Dispose(); de.Dispose(); } } return _inbound; }