Esempio n. 1
0
        internal static ADSessionSettings RescopeToOrganization(ADSessionSettings sessionSettings, OrganizationId orgId, bool checkOrgScope, bool rehomeDataSession = true)
        {
            if (sessionSettings == null)
            {
                throw new ArgumentNullException("sessionSettings");
            }
            if (orgId != null && orgId.OrganizationalUnit == null && sessionSettings.RecipientReadScope.Root == null)
            {
                return(sessionSettings);
            }
            if (sessionSettings.CurrentOrganizationId != null && sessionSettings.CurrentOrganizationId.Equals(orgId))
            {
                return(sessionSettings);
            }
            ScopeSet          scopeSet          = ScopeSet.ResolveUnderScope(orgId, sessionSettings.ScopeSet, checkOrgScope);
            ADSessionSettings adsessionSettings = ADSessionSettings.FromCustomScopeSet(scopeSet, sessionSettings.RootOrgId, orgId, checkOrgScope ? sessionSettings.ExecutingUserOrganizationId : OrganizationId.ForestWideOrgId, rehomeDataSession);

            ADSessionSettings.CloneSettableProperties(sessionSettings, adsessionSettings);
            return(adsessionSettings);
        }