Пример #1
0
        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);
        }
Пример #2
0
 internal static void CopySettableSessionPropertiesAndSettings(IDirectorySession oldSession, IDirectorySession newSession)
 {
     if (oldSession != null)
     {
         ADSession.CopySettableSessionProperties(oldSession, newSession);
         ADSessionSettings.CloneSettableProperties(oldSession.SessionSettings, newSession.SessionSettings);
     }
 }