سؤال

أقوم حاليًا ببرمجة أداة (في ANSI C) لشركتي تقرأ من دليل LDAP وتخرج جميع البيانات بتنسيق معين (أي:تنسيق الاسم الخاص بدليل الملكية القديم db).تتم معالجة ذلك بعد ذلك بواسطة أداة أخرى تقرأ الإخراج وما إلى ذلك ...لا تسأل.

على أي حال، بالنسبة لأمر "ldaplist..." الخاص بي، أحتاج إلى الطباعة الجميع السمات التي تنتمي إلى هذا الإدخال، حتى تلك التي ليس لها قيمة محددة.

للأسف ldap_first_attribute / ldap_next_attribute لا يعيدها، فقط تلك التي لها قيمة محددة، ولا يمكنني العثور عليها ldap_search_ext_s المعلمة أو ldap_set_option التبديل من شأنه أن يساعدني هنا.آمل أن يعرف أحدكم كيفية القيام بذلك.

شكرا على وقتك والمساعدة مقدما!

هل كانت مفيدة؟

المحلول

أنا لم تستخدم ldap_search_ext_s لذلك لا أعرف خياراتها ولا أستطيع أن أخبرك بحل يعتمد على استخدام هذه الوظيفة.ومع ذلك أود أن أقترح فكرة واحدة.

  1. تحتاج إلى استرداد المخطط من خادم LDAP.الاسم المميز لإدخال المخطط موجود في العقدة الجذرية.بعد ذلك يجب عليك استرداد إدخال المخطط والسمة "objectClasses" الخاصة به.أنه يحتوي على مواصفات كل فئة وأنواع السمات المسموح بها (المخطط).

  2. عند تشغيل بحث LDAP، عادةً ما تحصل على صفر، أو إدخال واحد أو أكثر.يحتوي كل إدخال على سمة objectClass.اقرأ قيمها التي هي أسماء فئات الكائنات.ثم ابحث عن كل فئات الكائنات في المخطط واستخرج أنواع سماتها.إذا لم يكن هناك سمة واحدة أو عدد قليل من السمات في الإدخال الذي تم إرجاعه، فهذا يعني إما أن السمة لا تحتوي على أي قيم أو أنه لا يُسمح لك بقراءة السمة في هذا الإدخال.

نصائح أخرى

وأنا أتفق، مع skwlsp.ستحتاج إلى إرجاع المخطط لكل فئة كائن في كل إدخال وعرض كل سمة.لسوء الحظ، من المحتمل أن يكون هذا أكثر بكثير مما كنت تتوقعه حيث قد يكون هناك الكثير من البيانات "عديمة الفائدة" في هذا النوع من الإرجاع.

من الأفضل أن تعرض السمات المملوءة ثم قائمة بالسمات المرغوبة التي لم يتم ملؤها.

قد تحصل على بعض المساعدة من خلال النظر إلى:http://developer.novell.com/documentation/samplecode/cldap_sample/index.htmحظا سعيدا -جيم

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top