GetEnumerator() public method

Returns an iterator over the attributes in this set. The attributes returned from this iterator are not in any particular order.
public GetEnumerator ( ) : System.Collections.IEnumerator
return System.Collections.IEnumerator
        /// <summary> Build the attribuite list from an LdapEntry.
        ///
        /// </summary>
        /// <param name="entry">The LdapEntry associated with this add request.
        /// </param>
        private static RfcAttributeList makeRfcAttrList(LdapEntry entry)
        {
            // convert Java-API LdapEntry to RFC2251 AttributeList
            LdapAttributeSet attrSet  = entry.getAttributeSet();
            RfcAttributeList attrList = new RfcAttributeList(attrSet.Count);
            IEnumerator      itr      = attrSet.GetEnumerator();

            while (itr.MoveNext())
            {
                LdapAttribute attr     = (LdapAttribute)itr.Current;
                Asn1SetOf     vals     = new Asn1SetOf(attr.size());
                IEnumerator   attrEnum = attr.ByteValues;
                while (attrEnum.MoveNext())
                {
                    vals.add(new RfcAttributeValue((sbyte[])attrEnum.Current));
                }
                attrList.add(new RfcAttributeTypeAndValues(new RfcAttributeDescription(attr.Name), vals));
            }
            return(attrList);
        }
示例#2
0
        /// <summary>
        /// Iterates the ZFD Application attributes
        /// </summary>
        /// <param name="attrSet">
        /// A <see cref="LdapAttributeSet"/>
        /// </param>
        /// <param name="dn">
        /// A <see cref="System.String"/>
        /// </param>
        /// <returns>
        /// A <see cref="LDAPGroup"/>
        /// </returns>
        public static LDAPZFDApp iterZFDAppAttrs(LdapAttributeSet attrSet, string dn)
        {
            LDAPZFDApp app;
            System.Collections.IEnumerator ienum =  attrSet.GetEnumerator();

            if (attrSet.Count == 0)
                return null;

            app = new LDAPZFDApp(dn);

            while(ienum.MoveNext())
            {
                LdapAttribute attribute=(LdapAttribute)ienum.Current;
                if (AttrEquals(attribute, ATTRNAME.APPASSOCIATIONS))
                    app.setAssociations(AttributeUtil.getListofAttr(attrSet, ATTRNAME.APPASSOCIATIONS));

            }
            return app;
        }
示例#3
0
        /// <summary>
        /// Parses a group objects attributes building the LDAPGroup object
        /// Requires the group objects attribute set and the DN.
        /// </summary>
        /// <param name="attrSet">
        /// A <see cref="LdapAttributeSet"/>
        /// </param>
        /// <param name="dn">
        /// A <see cref="System.String"/>
        /// </param>
        /// <returns>
        /// A <see cref="LDAPUser"/>
        /// </returns>
        public static LDAPGroup iterGroupAttrs(LdapAttributeSet attrSet, string dn)
        {
            LDAPGroup grp;
            System.Collections.IEnumerator ienum =  attrSet.GetEnumerator();

            if (attrSet.Count == 0)
                return null;

            grp = new LDAPGroup(dn);

            while(ienum.MoveNext())
            {
                LdapAttribute attribute=(LdapAttribute)ienum.Current;
                if (AttrEquals(attribute, (ATTRNAME.SN)))
                    grp.setSN(AttributeUtil.getAttr(attrSet, ATTRNAME.SN));

                if (AttrEquals(attribute, (ATTRNAME.CN)))
                    grp.setCN(AttributeUtil.getAttr(attrSet, ATTRNAME.CN));

                if (AttrEquals(attribute, ATTRNAME.MEMBERS))
                    grp.setGroupMembers( AttributeUtil.getListofAttr(attrSet, ATTRNAME.MEMBERS));
            }
            return grp;
        }
示例#4
0
        /// <summary>
        /// Parses a LdapAttributeSet and the specified user DN
        /// Returns a user object.
        /// </summary>
        /// <param name="attrSet">
        /// A <see cref="LdapAttributeSet"/>
        /// </param>
        /// <param name="dn">
        /// A <see cref="System.String"/>
        /// </param>
        /// <returns>
        /// A <see cref="LDAPUser"/>
        /// </returns>
        public static LDAPUser iterUsrAttrs(LdapAttributeSet attrSet, string dn)
        {
            LDAPUser user;
            System.Collections.IEnumerator ienum =  attrSet.GetEnumerator();

            if (attrSet.Count == 0) {
                Logger.Debug("No attributes in the AttributeSet for {0}", dn);
                return null;
            }

            user = new LDAPUser(dn);

            while(ienum.MoveNext())
            {

                LdapAttribute attribute=(LdapAttribute)ienum.Current;
                Logger.Debug("Parsing {0}", attribute);

                if (AttrEquals(attribute, ATTRNAME.NDSHOMEDIRECTORY))
                    user.parseNdsHomeDirPath(AttributeUtil.getAttr(attrSet, ATTRNAME.NDSHOMEDIRECTORY));

                if (AttrEquals(attribute, ATTRNAME.SN))
                    user.setSN(AttributeUtil.getAttr(attrSet, ATTRNAME.SN));

                if (AttrEquals(attribute, ATTRNAME.GIVENNAME))
                    user.setGivenName(AttributeUtil.getAttr(attrSet, ATTRNAME.GIVENNAME));

                if (AttrEquals(attribute, ATTRNAME.TITLE))
                    user.Title = AttributeUtil.getAttr(attrSet, ATTRNAME.TITLE);

                if (AttrEquals(attribute, ATTRNAME.HOMEPHONE))
                    user.HOMEPHONE = AttributeUtil.getAttr(attrSet, ATTRNAME.HOMEPHONE);

                if (AttrEquals(attribute, ATTRNAME.DISPLAYNAME))
                    user.DISPLAYNAME = AttributeUtil.getAttr(attrSet, ATTRNAME.DISPLAYNAME);

                if (AttrEquals(attribute, ATTRNAME.NGWFID))
                    user.GW_FID = AttributeUtil.getAttr(attrSet, ATTRNAME.NGWFID);
            }
            return user;
        }
示例#5
0
        /// <summary>
        /// Returns null of no attributes match the attr parameter value
        /// Returns a list of strings that contain the attribute values that were specified in the attr param
        /// </summary>
        /// <param name="attrSet">
        /// A <see cref="LdapAttributeSet"/>
        /// </param>
        /// <param name="attr">
        /// A <see cref="System.String"/>
        /// </param>
        /// <returns>
        /// A <see cref="List<System.String>"/>
        /// </returns>
        public static List<string> getListofAttr(LdapAttributeSet attrSet, ATTRNAME attr)
        {
            string sAttr = attr.ToString();
            if (attrSet.getAttribute(sAttr) == null)
                return null;

            List<string> values = null;
            System.Collections.IEnumerator ienum =  attrSet.GetEnumerator();

            while(ienum.MoveNext())
            {
                LdapAttribute attribute=(LdapAttribute)ienum.Current;
                if (AttrEquals(attribute, attr)) {
                    values = new List<string>(attrSet.getAttribute(sAttr).StringValueArray.Length);
                    values.AddRange(attrSet.getAttribute(sAttr).StringValueArray); // take the values from the array

                    if (Logger.LogLevel == Level.DEBUG) {
                        foreach (string x in values) //debug purposes
                        Logger.Debug("Values in {0} list {1}", attr, x);
                    }
                }
            }
            return values;
        }