📄 readschema.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 + -