예제 #1
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;
        }