コード例 #1
0
ファイル: LdapEntry.cs プロジェクト: wfu8/lightwave
        //Override
        public List <string> getAttributeNames()
        {
            IntPtr        attributePointer = IntPtr.Zero, berPointer = IntPtr.Zero;
            List <string> attributeList = new List <string>();

            try
            {
                attributePointer = LdapClientLibrary.ldap_first_attribute(this._message.GetConnection().GetIntPtr(), this._entry, out berPointer);
                while (attributePointer != IntPtr.Zero)
                {
                    var attributeName = Marshal.PtrToStringAnsi(attributePointer);
                    attributeList.Add(attributeName);
                    LdapClientLibrary.ldap_memfree(attributePointer);
                    attributePointer = LdapClientLibrary.ldap_next_attribute(this._message.GetConnection().GetIntPtr(), this._entry, berPointer);
                }
                return(attributeList);
            }
            finally
            {
                LdapClientLibrary.ldap_value_free(attributePointer);
                LdapClientLibrary.ber_free(berPointer, 0);
            }
        }