internal static IDirectorySession CreateScopedSession(IDirectorySession session, ADSessionSettings underSessionSettings) { bool flag = object.Equals(session.SessionSettings.PartitionId, underSessionSettings.PartitionId); IConfigurationSession configurationSession = session as IConfigurationSession; IDirectorySession directorySession; if (configurationSession != null) { directorySession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(flag ? configurationSession.DomainController : null, configurationSession.ReadOnly, configurationSession.ConsistencyMode, flag ? configurationSession.NetworkCredential : null, underSessionSettings, 395, "CreateScopedSession", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\ADSession.cs"); } else { IRecipientSession recipientSession = session as IRecipientSession; if (recipientSession.SessionSettings.IncludeSoftDeletedObjects) { underSessionSettings.IncludeSoftDeletedObjects = true; directorySession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(flag ? recipientSession.DomainController : null, flag ? recipientSession.SearchRoot : null, recipientSession.Lcid, recipientSession.ReadOnly, recipientSession.ConsistencyMode, flag ? recipientSession.NetworkCredential : null, underSessionSettings, recipientSession.ConfigScope, 410, "CreateScopedSession", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\ADSession.cs"); } else { directorySession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(flag ? recipientSession.DomainController : null, flag ? recipientSession.SearchRoot : null, recipientSession.Lcid, recipientSession.ReadOnly, recipientSession.ConsistencyMode, flag ? recipientSession.NetworkCredential : null, underSessionSettings, 422, "CreateScopedSession", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\ADSession.cs"); } if (recipientSession.IsReducedRecipientSession()) { directorySession = DirectorySessionFactory.Default.GetReducedRecipientSession((IRecipientSession)directorySession, 434, "CreateScopedSession", "f:\\15.00.1497\\sources\\dev\\data\\src\\directory\\ADSession.cs"); } } ADSession.CopySettableSessionProperties(session, directorySession); return(directorySession); }
internal static void CopySettableSessionPropertiesAndSettings(IDirectorySession oldSession, IDirectorySession newSession) { if (oldSession != null) { ADSession.CopySettableSessionProperties(oldSession, newSession); ADSessionSettings.CloneSettableProperties(oldSession.SessionSettings, newSession.SessionSettings); } }