Beispiel #1
0
        internal static bool IsUserObject(PropertyBag propertyBag)
        {
            DirectoryObjectClass directoryObjectClass = DirectoryObjectClass.Account;

            if (propertyBag.Contains(ADObjectSchema.ObjectClass))
            {
                directoryObjectClass = SyncRecipient.GetRecipientType(propertyBag);
            }
            return(directoryObjectClass == DirectoryObjectClass.User);
        }
Beispiel #2
0
        public static SyncObjectId Parse(string identity)
        {
            string[] identityElements = SyncObjectId.GetIdentityElements(identity);
            if (identityElements.Length != 3)
            {
                throw new ArgumentException(DirectoryStrings.InvalidSyncObjectId(identity), "Identity");
            }
            string contextId = identityElements[0];
            DirectoryObjectClass objectClass = (DirectoryObjectClass)Enum.Parse(typeof(DirectoryObjectClass), identityElements[1]);
            string objectId = identityElements[2];

            return(new SyncObjectId(contextId, objectId, objectClass));
        }
Beispiel #3
0
        public override void ReportExcludedObject(PropertyBag propertyBag, DirectoryObjectErrorCode errorCode, ProcessingStage processingStage)
        {
            base.ReportExcludedObject(propertyBag, errorCode, processingStage);
            DirectoryObjectClass directoryObjectClass = DirectoryObjectClass.Account;

            if (propertyBag.Contains(ADObjectSchema.ObjectClass))
            {
                directoryObjectClass = SyncRecipient.GetRecipientType(propertyBag);
            }
            ADObjectId adObjectId = (ADObjectId)propertyBag[ADObjectSchema.Id];
            string     objectId   = (string)propertyBag[SyncObjectSchema.ObjectId];

            this.verboseLoggingDelegate(Strings.BackSyncObjectExcludedExtended(directoryObjectClass, objectId, adObjectId, errorCode, processingStage));
        }
Beispiel #4
0
 public SyncObjectId(string contextId, string objectId, DirectoryObjectClass objectClass)
 {
     if (contextId == null)
     {
         throw new ArgumentNullException("contextId");
     }
     if (objectId == null)
     {
         throw new ArgumentNullException("objectId");
     }
     if (objectClass == DirectoryObjectClass.Company && !contextId.Equals(objectId, StringComparison.OrdinalIgnoreCase))
     {
         throw new ArgumentException(DirectoryStrings.InvalidSyncCompanyId(string.Format("{0}_Company_{1}", contextId, objectId)), "objectId");
     }
     this.ContextId   = contextId;
     this.ObjectId    = objectId;
     this.ObjectClass = objectClass;
 }
Beispiel #5
0
 public SyncLink(string targetId, DirectoryObjectClass targetObjectClass, LinkState linkState) : this(targetId, linkState)
 {
     this.targetObjectClass = targetObjectClass;
 }
Beispiel #6
0
 public override void SetSourceClass(DirectoryObjectClass objectClass)
 {
     base.SourceClass = (DirectoryObjectClassAddressList)DirectoryLink.ConvertEnums(typeof(DirectoryObjectClassAddressList), Enum.GetName(typeof(DirectoryObjectClass), objectClass));
 }
Beispiel #7
0
 public override void SetSourceClass(DirectoryObjectClass objectClass)
 {
     base.SourceClass          = objectClass;
     base.SourceClassSpecified = true;
 }
Beispiel #8
0
 public override void SetTargetClass(DirectoryObjectClass objectClass)
 {
     base.TargetClass = (DirectoryObjectClassCanBePendingMember)DirectoryLink.ConvertEnums(typeof(DirectoryObjectClassCanBePendingMember), Enum.GetName(typeof(DirectoryObjectClass), objectClass));
 }
 public override void SetTargetClass(DirectoryObjectClass objectClass)
 {
     throw new NotImplementedException();
 }
Beispiel #10
0
        protected override void InternalProcessRecord()
        {
            base.InternalProcessRecord();
            bool flag = true;

            try
            {
                if (this.ExternalObjectId != null)
                {
                    this.ProcessMsoRawObject(this.ExternalObjectId, this.ServiceInstanceId);
                }
                else if (this.Identity.ResolvedSyncObjectId != null && this.Identity.ResolvedServiceInstanceId != null)
                {
                    this.ProcessMsoRawObject(this.Identity.ResolvedSyncObjectId, this.Identity.ResolvedServiceInstanceId);
                }
                else
                {
                    if (this.Identity.RecipientParameter != null)
                    {
                        OrganizationId            orgId            = this.Identity.RecipientParameter.ResolveOrganizationIdBasedOnIdentity(OrganizationId.ForestWideOrgId);
                        IRecipientSession         recipientSession = this.GetRecipientSession(orgId);
                        IEnumerable <ADRecipient> objects          = this.Identity.RecipientParameter.GetObjects <ADRecipient>(null, recipientSession);
                        foreach (ADRecipient adrecipient in objects)
                        {
                            flag = false;
                            if (adrecipient.ConfigurationUnit == null)
                            {
                                this.WriteError(new Exception(Strings.RecipientFromFirstOrganization(adrecipient.ToString())), ErrorCategory.ObjectNotFound, null, false);
                            }
                            else if (string.IsNullOrEmpty(adrecipient.ExternalDirectoryObjectId))
                            {
                                this.WriteError(new Exception(Strings.RecipientHasNoExternalId(adrecipient.ToString())), ErrorCategory.ObjectNotFound, null, false);
                            }
                            else
                            {
                                DirectoryObjectClass msoObjectClassForRecipient = this.GetMsoObjectClassForRecipient(adrecipient.RecipientType, adrecipient.RecipientTypeDetails);
                                if (msoObjectClassForRecipient != DirectoryObjectClass.Company)
                                {
                                    IConfigurationSession     orgConfigurationSession   = this.GetOrgConfigurationSession(adrecipient.OrganizationId);
                                    ExchangeConfigurationUnit exchangeConfigurationUnit = orgConfigurationSession.Read <ExchangeConfigurationUnit>(adrecipient.ConfigurationUnit);
                                    if (exchangeConfigurationUnit == null)
                                    {
                                        this.WriteError(new Exception(Strings.RecipientTenantNotFound(adrecipient.ToString())), ErrorCategory.ObjectNotFound, null, false);
                                    }
                                    else if (string.IsNullOrEmpty(exchangeConfigurationUnit.DirSyncServiceInstance))
                                    {
                                        this.WriteError(new Exception(Strings.RecipientWithTenantServiceInstanceNotSet(adrecipient.ToString())), ErrorCategory.ObjectNotFound, null, false);
                                    }
                                    else
                                    {
                                        this.ProcessMsoRawObject(new SyncObjectId(exchangeConfigurationUnit.ExternalDirectoryOrganizationId, adrecipient.ExternalDirectoryObjectId, msoObjectClassForRecipient), exchangeConfigurationUnit.DirSyncServiceInstance);
                                    }
                                }
                            }
                        }
                    }
                    if (this.Identity.OrganizationParameter != null)
                    {
                        OrganizationId        orgId2 = this.Identity.OrganizationParameter.ResolveOrganizationIdBasedOnIdentity(OrganizationId.ForestWideOrgId);
                        IConfigurationSession orgConfigurationSession2   = this.GetOrgConfigurationSession(orgId2);
                        IEnumerable <ExchangeConfigurationUnit> objects2 = this.Identity.OrganizationParameter.GetObjects <ExchangeConfigurationUnit>(null, orgConfigurationSession2);
                        foreach (ExchangeConfigurationUnit exchangeConfigurationUnit2 in objects2)
                        {
                            flag = false;
                            if (string.IsNullOrEmpty(exchangeConfigurationUnit2.DirSyncServiceInstance))
                            {
                                this.WriteError(new Exception(Strings.TenantServiceInstanceNotSet(exchangeConfigurationUnit2.ConfigurationUnit.ToString())), ErrorCategory.ObjectNotFound, null, false);
                            }
                            else
                            {
                                this.ProcessMsoRawObject(new SyncObjectId(exchangeConfigurationUnit2.ExternalDirectoryOrganizationId, exchangeConfigurationUnit2.ExternalDirectoryOrganizationId, DirectoryObjectClass.Company), exchangeConfigurationUnit2.DirSyncServiceInstance);
                            }
                        }
                    }
                    if (flag)
                    {
                        if (this.Identity.RecipientParameter != null)
                        {
                            this.WriteError(new Exception(Strings.ExchangeRecipientNotFound(this.Identity.RecipientParameter.ToString())), ErrorCategory.ObjectNotFound, null, false);
                        }
                        if (this.Identity.OrganizationParameter != null)
                        {
                            this.WriteError(new Exception(Strings.ExchangeTenantNotFound(this.Identity.OrganizationParameter.ToString())), ErrorCategory.ObjectNotFound, null, false);
                        }
                    }
                }
            }
            catch (CouldNotCreateMsoSyncServiceException exception)
            {
                this.WriteError(exception, ErrorCategory.ObjectNotFound, null, true);
            }
            catch (InvalidMsoSyncServiceResponseException exception2)
            {
                this.WriteError(exception2, ErrorCategory.InvalidOperation, null, false);
            }
            catch (Exception exception3)
            {
                this.WriteError(exception3, ErrorCategory.InvalidOperation, null, true);
            }
        }
 public override void SetTargetClass(DirectoryObjectClass objectClass)
 {
 }
 public override void SetSourceClass(DirectoryObjectClass objectClass)
 {
 }
Beispiel #13
0
 public abstract void SetTargetClass(DirectoryObjectClass objectClass);
Beispiel #14
0
 public abstract void SetSourceClass(DirectoryObjectClass objectClass);
Beispiel #15
0
 public override void SetTargetClass(DirectoryObjectClass objectClass)
 {
     base.TargetClass = (DirectoryObjectClassUserAndServicePrincipal)DirectoryLink.ConvertEnums(typeof(DirectoryObjectClassUserAndServicePrincipal), Enum.GetName(typeof(DirectoryObjectClass), objectClass));
 }
Beispiel #16
0
 public void UpdateSyncData(string targetId, DirectoryObjectClass targetObjectClass)
 {
     this.targetId          = targetId;
     this.targetObjectClass = targetObjectClass;
 }
Beispiel #17
0
 public override void SetSourceClass(DirectoryObjectClass objectClass)
 {
     base.SourceClass = (DirectoryObjectClassContainsPendingMember)DirectoryLink.ConvertEnums(typeof(DirectoryObjectClassContainsPendingMember), Enum.GetName(typeof(DirectoryObjectClass), objectClass));
 }
Beispiel #18
0
 public override void SetTargetClass(DirectoryObjectClass objectClass)
 {
     base.TargetClass          = objectClass;
     base.TargetClassSpecified = true;
 }
        public static FfoSyncObjectType ToFfoType(DirectoryObjectClass msodsType)
        {
            string name = Enum.GetName(typeof(DirectoryObjectClass), msodsType);

            return((FfoSyncObjectType)Enum.Parse(typeof(FfoSyncObjectType), name));
        }
Beispiel #20
0
 // Token: 0x060068E4 RID: 26852 RVA: 0x001714A1 File Offset: 0x0016F6A1
 public override void SetSourceClass(DirectoryObjectClass objectClass)
 {
     base.SourceClass = (DirectoryObjectClassContainsAllowAccessTo)DirectoryLink.ConvertEnums(typeof(DirectoryObjectClassContainsAllowAccessTo), Enum.GetName(typeof(DirectoryObjectClass), objectClass));
 }
Beispiel #21
0
 public override void SetTargetClass(DirectoryObjectClass objectClass)
 {
     base.TargetClass = (DirectoryObjectClassPerson)DirectoryLink.ConvertEnums(typeof(DirectoryObjectClassPerson), Enum.GetName(typeof(DirectoryObjectClass), objectClass));
 }
Beispiel #22
0
 // Token: 0x060068E6 RID: 26854 RVA: 0x001714F8 File Offset: 0x0016F6F8
 public override void SetTargetClass(DirectoryObjectClass objectClass)
 {
     base.TargetClass = (DirectoryObjectClassCanHaveAllowAccessTo)DirectoryLink.ConvertEnums(typeof(DirectoryObjectClassCanHaveAllowAccessTo), Enum.GetName(typeof(DirectoryObjectClass), objectClass));
 }