Ejemplo n.º 1
0
        private static bool IsChildrenModified(IOguObject oguObject, ADObjectWrapper targetObject)
        {
            ADHelper     adHelper = SynchronizeContext.Current.ADHelper;
            SearchResult result   = SynchronizeHelper.GetSearchResultByDN(adHelper, targetObject.DN, ADSchemaType.Groups);           //当前肯定有改组存在
            ResultPropertyValueCollection adMembers = result.Properties["member"];

            IUser[] oguUsers = ((IGroup)oguObject).Members.Where(u => u.FullPath.StartsWith(SynchronizeContext.Current.StartPath) && u.IsSideline == false).ToArray();


            if (adMembers.Count != oguUsers.Count())
            {
                return(true);
            }

            foreach (var memberDN in adMembers)
            {
                bool exists = false;
                for (int i = oguUsers.Length - 1; i >= 0; i--)
                {
                    if (SynchronizeHelper.AppendNamingContext(SynchronizeHelper.GetOguObjectDN(oguUsers[i])) == memberDN.ToString())
                    {
                        exists = true;
                        break;
                    }
                }
                if (exists == false)
                {
                    return(true);
                }
            }

            return(false);
        }
Ejemplo n.º 2
0
        protected override bool ComparePropertyValue(IOguObject srcOguObject, string srcPropertyName, ADObjectWrapper adObject, string targetPropertyName, string context)
        {
            string targetPropertyValue = null;

            if (adObject.Properties[targetPropertyName] != null)
            {
                targetPropertyValue = adObject.Properties[targetPropertyName].ToString();
            }

            return(SynchronizeHelper.AppendNamingContext(SynchronizeHelper.GetOguObjectDN(srcOguObject)) == targetPropertyValue);
        }
Ejemplo n.º 3
0
        public static IOguObject Find(ADObjectWrapper childADObject, IEnumerable <IOguObject> oguObjects)
        {
            IOguObject result = null;

            //这里仅仅是查找所给集合里是不是存在相应的对象
            foreach (var obj in oguObjects)
            {
                if (obj.ObjectType == SchemaType.Users)
                {
                    if (((IUser)obj).IsSideline)
                    {
                        // continue;
                    }
                }

                var guid = childADObject.NativeGuid;

                if (SynchronizeContext.Current.IDMapper.ADIDMappingDictionary.ContainsKey(guid))                 //有映射
                {
                    if (obj.ID == SynchronizeContext.Current.IDMapper.ADIDMappingDictionary[guid].SCObjectID)
                    {
                        result = obj;
                    }
                }
                else
                {
                    switch (childADObject.ObjectType)
                    {
                    case ADSchemaType.Organizations:
                        if (SynchronizeHelper.AppendNamingContext(childADObject.DN) ==
                            SynchronizeHelper.AppendNamingContext(SynchronizeHelper.GetOguObjectDN(obj)))
                        {
                            result = obj;
                        }
                        break;

                    case ADSchemaType.Groups:
                    case ADSchemaType.Users:
                        if (childADObject.Properties["samAccountName"].ToString() == obj.Properties["LOGON_NAME"].ToString())
                        {
                            result = obj;
                        }
                        break;
                    }
                }
            }

            return(result);
        }
Ejemplo n.º 4
0
 protected override bool ComparePropertyValue(OGUPermission.IOguObject srcOguObject, string srcPropertyName, ADObjectWrapper adObject, string targetPropertyName, string context)
 {
     if (srcOguObject.FullPath == SynchronizeContext.Current.SourceRootPath)
     {
         //名称以权限中心为准
         return(adObject.DN == SynchronizeHelper.AppendNamingContext(SynchronizeContext.Current.TargetRootOU));
     }
     else
     {
         string path = SynchronizeHelper.GetRelativePath(srcOguObject);
         if (path.IndexOf('\\') > 0)
         {
             return(base.ComparePropertyValue(srcOguObject, srcPropertyName, adObject, targetPropertyName, context));
         }
         else
         {
             string dn = SynchronizeContext.Current.GetMappedName(srcOguObject.Name);
             return(adObject.DN == SynchronizeHelper.AppendNamingContext(dn));
         }
     }
 }
Ejemplo n.º 5
0
        public static bool AreParentPathEqaul(IOguObject oguObject, DirectoryEntry entry)
        {
            var localPathToDN = SynchronizeHelper.AppendNamingContext(SynchronizeHelper.GetParentObjectDN(oguObject));

            return(localPathToDN == ADHelper.GetParentRdnSequence(entry.Properties["distinguishedName"].Value.ToString()));
        }
Ejemplo n.º 6
0
        public static bool AreParentPathEqaul(IOguObject oguObject, ADObjectWrapper adObject)
        {
            var localPathToDN = SynchronizeHelper.AppendNamingContext(SynchronizeHelper.GetParentObjectDN(oguObject));

            return(localPathToDN == ADHelper.GetParentRdnSequence(adObject.DN));
        }