⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readschema.cpp

📁 OpenLdap是LDAP的开源项目
💻 CPP
字号:
#include<iostream.h>#include<strstream>#include "LDAPConnection.h"#include "LDAPConstraints.h"#include "LDAPSearchReference.h"#include "LDAPSearchResults.h"#include "LDAPAttribute.h"#include "LDAPAttributeList.h"#include "LDAPEntry.h"#include "LDAPException.h"#include "LDAPModification.h"#include "LDAPReferralException.h"#include "LDAPSchema.h"#include"debug.h"int main(){    LDAPConnection *lc=new LDAPConnection("192.168.3.128",389);    cout << "----------------------doing bind...." <<  endl;    try{        lc->bind("uid=admin,dc=home,dc=local" , "secret");        cout << lc->getHost() << endl;        StringList tmp;        tmp.add("subschemasubentry");        LDAPSearchResults* entries = lc->search("",                         LDAPConnection::SEARCH_BASE,                        "(objectClass=*)",                        tmp );        LDAPEntry* rootDse = entries->getNext();        std::string schemabase="cn=subschema";        if(rootDse){            const LDAPAttribute* schemaAttr = rootDse->getAttributes()->getAttributeByName("subschemaSubentry");            schemabase = *(schemaAttr->getValues().begin());           }        StringList attrs;        attrs.add("objectClasses");        attrs.add("attributeTypes");        entries = lc->search(schemabase, LDAPConnection::SEARCH_BASE, "(objectClass=*)",                        attrs);        if (entries != 0){            LDAPEntry* entry = entries->getNext();            if(entry != 0){                const LDAPAttribute* oc = entry->getAttributes()->getAttributeByName("objectClasses");                LDAPSchema schema;                schema.setObjectClasses((oc->getValues()));                LDAPObjClass test = schema.getObjectClassByName("inetOrgPerson");                cout << test.getDesc() << endl;//                StringList mustAttr = test.getMay();//                for( StringList::const_iterator i = mustAttr.begin(); i != mustAttr.end(); i++ ){//                    cout << *i << endl;//                }                StringList sup = test.getSup();                for( StringList::const_iterator i = sup.begin(); i != sup.end(); i++ ){                    cout << *i << endl;                }            }        }                lc->unbind();        delete lc;   }catch (LDAPException e){        cout << "------------------------- caught Exception ---------"<< endl;        cout << e << endl;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -