jwantldap.pas 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  1. {******************************************************************************}
  2. { }
  3. { NT LDAP API interface Unit for Object Pascal }
  4. { }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
  6. { Corporation. All Rights Reserved. }
  7. { }
  8. { The original file is: ntldap.h, released June 2000. The original Pascal }
  9. { code is: NtLDAP.pas, released December 2000. The initial developer of the }
  10. { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
  11. { }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
  13. { Marcel van Brakel. All Rights Reserved. }
  14. { }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
  16. { }
  17. { You may retrieve the latest version of this file at the Project JEDI }
  18. { APILIB home page, located at http://jedi-apilib.sourceforge.net }
  19. { }
  20. { The contents of this file are used with permission, subject to the Mozilla }
  21. { Public License Version 1.1 (the "License"); you may not use this file except }
  22. { in compliance with the License. You may obtain a copy of the License at }
  23. { http://www.mozilla.org/MPL/MPL-1.1.html }
  24. { }
  25. { Software distributed under the License is distributed on an "AS IS" basis, }
  26. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  27. { the specific language governing rights and limitations under the License. }
  28. { }
  29. { Alternatively, the contents of this file may be used under the terms of the }
  30. { GNU Lesser General Public License (the "LGPL License"), in which case the }
  31. { provisions of the LGPL License are applicable instead of those above. }
  32. { If you wish to allow use of your version of this file only under the terms }
  33. { of the LGPL License and not to allow others to use your version of this file }
  34. { under the MPL, indicate your decision by deleting the provisions above and }
  35. { replace them with the notice and other provisions required by the LGPL }
  36. { License. If you do not delete the provisions above, a recipient may use }
  37. { your version of this file under either the MPL or the LGPL License. }
  38. { }
  39. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  40. { }
  41. {******************************************************************************}
  42. // $Id: JwaNtLDAP.pas,v 1.5 2004/12/08 08:18:38 marquardt Exp $
  43. unit JwaNtLDAP;
  44. {$WEAKPACKAGEUNIT}
  45. {$HPPEMIT ''}
  46. {$HPPEMIT '#include "ntldap.h"'}
  47. {$HPPEMIT ''}
  48. {$I jediapilib.inc}
  49. interface
  50. //
  51. //
  52. // Server controls section
  53. //
  54. //
  55. // Permissive Modify Control. No Data.
  56. //
  57. const
  58. LDAP_SERVER_PERMISSIVE_MODIFY_OID = '1.2.840.113556.1.4.1413';
  59. {$EXTERNALSYM LDAP_SERVER_PERMISSIVE_MODIFY_OID}
  60. LDAP_SERVER_PERMISSIVE_MODIFY_OID_W = '1.2.840.113556.1.4.1413';
  61. {$EXTERNALSYM LDAP_SERVER_PERMISSIVE_MODIFY_OID_W}
  62. //
  63. // Show Deleted Control. No Data.
  64. //
  65. LDAP_SERVER_SHOW_DELETED_OID = '1.2.840.113556.1.4.417';
  66. {$EXTERNALSYM LDAP_SERVER_SHOW_DELETED_OID}
  67. LDAP_SERVER_SHOW_DELETED_OID_W = '1.2.840.113556.1.4.417';
  68. {$EXTERNALSYM LDAP_SERVER_SHOW_DELETED_OID_W}
  69. //
  70. // Cross Domain Move Control. Data as follows
  71. // SEQUENCE {
  72. // Name OCTET STRING
  73. // }
  74. //
  75. LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID = '1.2.840.113556.1.4.521';
  76. {$EXTERNALSYM LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID}
  77. LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID_W = '1.2.840.113556.1.4.521';
  78. {$EXTERNALSYM LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID_W}
  79. //
  80. // Notification. No Data.
  81. //
  82. LDAP_SERVER_NOTIFICATION_OID = '1.2.840.113556.1.4.528';
  83. {$EXTERNALSYM LDAP_SERVER_NOTIFICATION_OID}
  84. LDAP_SERVER_NOTIFICATION_OID_W = '1.2.840.113556.1.4.528';
  85. {$EXTERNALSYM LDAP_SERVER_NOTIFICATION_OID_W}
  86. //
  87. // Lazy Commit. No Data.
  88. //
  89. LDAP_SERVER_LAZY_COMMIT_OID = '1.2.840.113556.1.4.619';
  90. {$EXTERNALSYM LDAP_SERVER_LAZY_COMMIT_OID}
  91. LDAP_SERVER_LAZY_COMMIT_OID_W = '1.2.840.113556.1.4.619';
  92. {$EXTERNALSYM LDAP_SERVER_LAZY_COMMIT_OID_W}
  93. //
  94. // Security Descriptor Flag. Data as follows
  95. // SEQUENCE {
  96. // Flags INTEGER
  97. // }
  98. //
  99. LDAP_SERVER_SD_FLAGS_OID = '1.2.840.113556.1.4.801';
  100. {$EXTERNALSYM LDAP_SERVER_SD_FLAGS_OID}
  101. LDAP_SERVER_SD_FLAGS_OID_W = '1.2.840.113556.1.4.801';
  102. {$EXTERNALSYM LDAP_SERVER_SD_FLAGS_OID_W}
  103. //
  104. // Tree Delete. No Data.
  105. //
  106. LDAP_SERVER_TREE_DELETE_OID = '1.2.840.113556.1.4.805';
  107. {$EXTERNALSYM LDAP_SERVER_TREE_DELETE_OID}
  108. LDAP_SERVER_TREE_DELETE_OID_W = '1.2.840.113556.1.4.805';
  109. {$EXTERNALSYM LDAP_SERVER_TREE_DELETE_OID_W}
  110. //
  111. // DirSync operation. Data as follows
  112. // SEQUENCE {
  113. // Flags INTEGER
  114. // Size INTEGER
  115. // Cookie OCTET STRING
  116. // }
  117. //
  118. LDAP_SERVER_DIRSYNC_OID = '1.2.840.113556.1.4.841';
  119. {$EXTERNALSYM LDAP_SERVER_DIRSYNC_OID}
  120. LDAP_SERVER_DIRSYNC_OID_W = '1.2.840.113556.1.4.841';
  121. {$EXTERNALSYM LDAP_SERVER_DIRSYNC_OID_W}
  122. //
  123. // Return extended DNs. No Data.
  124. //
  125. LDAP_SERVER_EXTENDED_DN_OID = '1.2.840.113556.1.4.529';
  126. {$EXTERNALSYM LDAP_SERVER_EXTENDED_DN_OID}
  127. LDAP_SERVER_EXTENDED_DN_OID_W = '1.2.840.113556.1.4.529';
  128. {$EXTERNALSYM LDAP_SERVER_EXTENDED_DN_OID_W}
  129. //
  130. // Tell DC which server to verify with that a DN exist. Data as follows
  131. // SEQUENCE {
  132. // Flags INTEGER,
  133. // ServerName OCTET STRING // unicode server string
  134. // }
  135. //
  136. LDAP_SERVER_VERIFY_NAME_OID = '1.2.840.113556.1.4.1338';
  137. {$EXTERNALSYM LDAP_SERVER_VERIFY_NAME_OID}
  138. LDAP_SERVER_VERIFY_NAME_OID_W = '1.2.840.113556.1.4.1338';
  139. {$EXTERNALSYM LDAP_SERVER_VERIFY_NAME_OID_W}
  140. //
  141. // Tells server not to generate referrals
  142. //
  143. LDAP_SERVER_DOMAIN_SCOPE_OID = '1.2.840.113556.1.4.1339';
  144. {$EXTERNALSYM LDAP_SERVER_DOMAIN_SCOPE_OID}
  145. LDAP_SERVER_DOMAIN_SCOPE_OID_W = '1.2.840.113556.1.4.1339';
  146. {$EXTERNALSYM LDAP_SERVER_DOMAIN_SCOPE_OID_W}
  147. //
  148. // Server Search Options. Allows the client to pass in flags to control
  149. // various search behaviours. Data as follows
  150. // SEQUENCE {
  151. // Flags INTEGER
  152. // }
  153. //
  154. LDAP_SERVER_SEARCH_OPTIONS_OID = '1.2.840.113556.1.4.1340';
  155. {$EXTERNALSYM LDAP_SERVER_SEARCH_OPTIONS_OID}
  156. LDAP_SERVER_SEARCH_OPTIONS_OID_W = '1.2.840.113556.1.4.1340';
  157. {$EXTERNALSYM LDAP_SERVER_SEARCH_OPTIONS_OID_W}
  158. //
  159. // search option flags
  160. //
  161. SERVER_SEARCH_FLAG_DOMAIN_SCOPE = $1; // no referrals generated
  162. {$EXTERNALSYM SERVER_SEARCH_FLAG_DOMAIN_SCOPE}
  163. SERVER_SEARCH_FLAG_PHANTOM_ROOT = $2; // search all NCs subordinate to search base
  164. {$EXTERNALSYM SERVER_SEARCH_FLAG_PHANTOM_ROOT}
  165. //
  166. // End of Server controls
  167. //
  168. //
  169. //
  170. // Operational Attributes
  171. //
  172. LDAP_OPATT_BECOME_DOM_MASTER = 'becomeDomainMaster';
  173. {$EXTERNALSYM LDAP_OPATT_BECOME_DOM_MASTER}
  174. LDAP_OPATT_BECOME_DOM_MASTER_W = 'becomeDomainMaster';
  175. {$EXTERNALSYM LDAP_OPATT_BECOME_DOM_MASTER_W}
  176. LDAP_OPATT_BECOME_RID_MASTER = 'becomeRidMaster';
  177. {$EXTERNALSYM LDAP_OPATT_BECOME_RID_MASTER}
  178. LDAP_OPATT_BECOME_RID_MASTER_W = 'becomeRidMaster';
  179. {$EXTERNALSYM LDAP_OPATT_BECOME_RID_MASTER_W}
  180. LDAP_OPATT_BECOME_SCHEMA_MASTER = 'becomeSchemaMaster';
  181. {$EXTERNALSYM LDAP_OPATT_BECOME_SCHEMA_MASTER}
  182. LDAP_OPATT_BECOME_SCHEMA_MASTER_W = 'becomeSchemaMaster';
  183. {$EXTERNALSYM LDAP_OPATT_BECOME_SCHEMA_MASTER_W}
  184. LDAP_OPATT_RECALC_HIERARCHY = 'recalcHierarchy';
  185. {$EXTERNALSYM LDAP_OPATT_RECALC_HIERARCHY}
  186. LDAP_OPATT_RECALC_HIERARCHY_W = 'recalcHierarchy';
  187. {$EXTERNALSYM LDAP_OPATT_RECALC_HIERARCHY_W}
  188. LDAP_OPATT_SCHEMA_UPDATE_NOW = 'schemaUpdateNow';
  189. {$EXTERNALSYM LDAP_OPATT_SCHEMA_UPDATE_NOW}
  190. LDAP_OPATT_SCHEMA_UPDATE_NOW_W = 'schemaUpdateNow';
  191. {$EXTERNALSYM LDAP_OPATT_SCHEMA_UPDATE_NOW_W}
  192. LDAP_OPATT_BECOME_PDC = 'becomePdc';
  193. {$EXTERNALSYM LDAP_OPATT_BECOME_PDC}
  194. LDAP_OPATT_BECOME_PDC_W = 'becomePdc';
  195. {$EXTERNALSYM LDAP_OPATT_BECOME_PDC_W}
  196. LDAP_OPATT_FIXUP_INHERITANCE = 'fixupInheritance';
  197. {$EXTERNALSYM LDAP_OPATT_FIXUP_INHERITANCE}
  198. LDAP_OPATT_FIXUP_INHERITANCE_W = 'fixupInheritance';
  199. {$EXTERNALSYM LDAP_OPATT_FIXUP_INHERITANCE_W}
  200. LDAP_OPATT_INVALIDATE_RID_POOL = 'invalidateRidPool';
  201. {$EXTERNALSYM LDAP_OPATT_INVALIDATE_RID_POOL}
  202. LDAP_OPATT_INVALIDATE_RID_POOL_W = 'invalidateRidPool';
  203. {$EXTERNALSYM LDAP_OPATT_INVALIDATE_RID_POOL_W}
  204. LDAP_OPATT_ABANDON_REPL = 'abandonReplication';
  205. {$EXTERNALSYM LDAP_OPATT_ABANDON_REPL}
  206. LDAP_OPATT_ABANDON_REPL_W = 'abandonReplication';
  207. {$EXTERNALSYM LDAP_OPATT_ABANDON_REPL_W}
  208. LDAP_OPATT_DO_GARBAGE_COLLECTION = 'doGarbageCollection';
  209. {$EXTERNALSYM LDAP_OPATT_DO_GARBAGE_COLLECTION}
  210. LDAP_OPATT_DO_GARBAGE_COLLECTION_W = 'doGarbageCollection';
  211. {$EXTERNALSYM LDAP_OPATT_DO_GARBAGE_COLLECTION_W}
  212. //
  213. // Root DSE Attributes
  214. //
  215. LDAP_OPATT_SUBSCHEMA_SUBENTRY = 'subschemaSubentry';
  216. {$EXTERNALSYM LDAP_OPATT_SUBSCHEMA_SUBENTRY}
  217. LDAP_OPATT_SUBSCHEMA_SUBENTRY_W = 'subschemaSubentry';
  218. {$EXTERNALSYM LDAP_OPATT_SUBSCHEMA_SUBENTRY_W}
  219. LDAP_OPATT_CURRENT_TIME = 'currentTime';
  220. {$EXTERNALSYM LDAP_OPATT_CURRENT_TIME}
  221. LDAP_OPATT_CURRENT_TIME_W = 'currentTime';
  222. {$EXTERNALSYM LDAP_OPATT_CURRENT_TIME_W}
  223. LDAP_OPATT_SERVER_NAME = 'serverName';
  224. {$EXTERNALSYM LDAP_OPATT_SERVER_NAME}
  225. LDAP_OPATT_SERVER_NAME_W = 'serverName';
  226. {$EXTERNALSYM LDAP_OPATT_SERVER_NAME_W}
  227. LDAP_OPATT_NAMING_CONTEXTS = 'namingContexts';
  228. {$EXTERNALSYM LDAP_OPATT_NAMING_CONTEXTS}
  229. LDAP_OPATT_NAMING_CONTEXTS_W = 'namingContexts';
  230. {$EXTERNALSYM LDAP_OPATT_NAMING_CONTEXTS_W}
  231. LDAP_OPATT_DEFAULT_NAMING_CONTEXT = 'defaultNamingContext';
  232. {$EXTERNALSYM LDAP_OPATT_DEFAULT_NAMING_CONTEXT}
  233. LDAP_OPATT_DEFAULT_NAMING_CONTEXT_W = 'defaultNamingContext';
  234. {$EXTERNALSYM LDAP_OPATT_DEFAULT_NAMING_CONTEXT_W}
  235. LDAP_OPATT_SUPPORTED_CONTROL = 'supportedControl';
  236. {$EXTERNALSYM LDAP_OPATT_SUPPORTED_CONTROL}
  237. LDAP_OPATT_SUPPORTED_CONTROL_W = 'supportedControl';
  238. {$EXTERNALSYM LDAP_OPATT_SUPPORTED_CONTROL_W}
  239. LDAP_OPATT_HIGHEST_COMMITTED_USN = 'highestCommitedUSN';
  240. {$EXTERNALSYM LDAP_OPATT_HIGHEST_COMMITTED_USN}
  241. LDAP_OPATT_HIGHEST_COMMITTED_USN_W = 'highestCommitedUSN';
  242. {$EXTERNALSYM LDAP_OPATT_HIGHEST_COMMITTED_USN_W}
  243. LDAP_OPATT_SUPPORTED_LDAP_VERSION = 'supportedLDAPVersion';
  244. {$EXTERNALSYM LDAP_OPATT_SUPPORTED_LDAP_VERSION}
  245. LDAP_OPATT_SUPPORTED_LDAP_VERSION_W = 'supportedLDAPVersion';
  246. {$EXTERNALSYM LDAP_OPATT_SUPPORTED_LDAP_VERSION_W}
  247. LDAP_OPATT_SUPPORTED_LDAP_POLICIES = 'supportedLDAPPolicies';
  248. {$EXTERNALSYM LDAP_OPATT_SUPPORTED_LDAP_POLICIES}
  249. LDAP_OPATT_SUPPORTED_LDAP_POLICIES_W = 'supportedLDAPPolicies';
  250. {$EXTERNALSYM LDAP_OPATT_SUPPORTED_LDAP_POLICIES_W}
  251. LDAP_OPATT_SCHEMA_NAMING_CONTEXT = 'schemaNamingContext';
  252. {$EXTERNALSYM LDAP_OPATT_SCHEMA_NAMING_CONTEXT}
  253. LDAP_OPATT_SCHEMA_NAMING_CONTEXT_W = 'schemaNamingContext';
  254. {$EXTERNALSYM LDAP_OPATT_SCHEMA_NAMING_CONTEXT_W}
  255. LDAP_OPATT_CONFIG_NAMING_CONTEXT = 'configurationNamingContext';
  256. {$EXTERNALSYM LDAP_OPATT_CONFIG_NAMING_CONTEXT}
  257. LDAP_OPATT_CONFIG_NAMING_CONTEXT_W = 'configurationNamingContext';
  258. {$EXTERNALSYM LDAP_OPATT_CONFIG_NAMING_CONTEXT_W}
  259. LDAP_OPATT_ROOT_DOMAIN_NAMING_CONTEXT = 'rootDomainNamingContext';
  260. {$EXTERNALSYM LDAP_OPATT_ROOT_DOMAIN_NAMING_CONTEXT}
  261. LDAP_OPATT_ROOT_DOMAIN_NAMING_CONTEXT_W = 'rootDomainNamingContext';
  262. {$EXTERNALSYM LDAP_OPATT_ROOT_DOMAIN_NAMING_CONTEXT_W}
  263. LDAP_OPATT_SUPPORTED_SASL_MECHANISM = 'supportedSASLMechanisms';
  264. {$EXTERNALSYM LDAP_OPATT_SUPPORTED_SASL_MECHANISM}
  265. LDAP_OPATT_SUPPORTED_SASL_MECHANISM_W = 'supportedSASLMechanisms';
  266. {$EXTERNALSYM LDAP_OPATT_SUPPORTED_SASL_MECHANISM_W}
  267. LDAP_OPATT_DNS_HOST_NAME = 'dnsHostName';
  268. {$EXTERNALSYM LDAP_OPATT_DNS_HOST_NAME}
  269. LDAP_OPATT_DNS_HOST_NAME_W = 'dnsHostName';
  270. {$EXTERNALSYM LDAP_OPATT_DNS_HOST_NAME_W}
  271. LDAP_OPATT_LDAP_SERVICE_NAME = 'ldapServiceName';
  272. {$EXTERNALSYM LDAP_OPATT_LDAP_SERVICE_NAME}
  273. LDAP_OPATT_LDAP_SERVICE_NAME_W = 'ldapServiceName';
  274. {$EXTERNALSYM LDAP_OPATT_LDAP_SERVICE_NAME_W}
  275. LDAP_OPATT_DS_SERVICE_NAME = 'dsServiceName';
  276. {$EXTERNALSYM LDAP_OPATT_DS_SERVICE_NAME}
  277. LDAP_OPATT_DS_SERVICE_NAME_W = 'dsServiceName';
  278. {$EXTERNALSYM LDAP_OPATT_DS_SERVICE_NAME_W}
  279. LDAP_OPATT_SUPPORTED_CAPABILITIES = 'supportedCapabilities';
  280. {$EXTERNALSYM LDAP_OPATT_SUPPORTED_CAPABILITIES}
  281. LDAP_OPATT_SUPPORTED_CAPABILITIES_W = 'supportedCapabilities';
  282. {$EXTERNALSYM LDAP_OPATT_SUPPORTED_CAPABILITIES_W}
  283. //
  284. // End of Operational attributes
  285. //
  286. //
  287. //
  288. // Server Capabilities
  289. //
  290. //
  291. // NT5 Active Directory
  292. //
  293. LDAP_CAP_ACTIVE_DIRECTORY_OID = '1.2.840.113556.1.4.800';
  294. {$EXTERNALSYM LDAP_CAP_ACTIVE_DIRECTORY_OID}
  295. LDAP_CAP_ACTIVE_DIRECTORY_OID_W = '1.2.840.113556.1.4.800';
  296. {$EXTERNALSYM LDAP_CAP_ACTIVE_DIRECTORY_OID_W}
  297. //
  298. // End of capabilities
  299. //
  300. //
  301. //
  302. // Matching Rules
  303. //
  304. //
  305. // BIT AND
  306. //
  307. LDAP_MATCHING_RULE_BIT_AND = '1.2.840.113556.1.4.803';
  308. {$EXTERNALSYM LDAP_MATCHING_RULE_BIT_AND}
  309. LDAP_MATCHING_RULE_BIT_AND_W = '1.2.840.113556.1.4.803';
  310. {$EXTERNALSYM LDAP_MATCHING_RULE_BIT_AND_W}
  311. //
  312. // BIT OR
  313. //
  314. LDAP_MATCHING_RULE_BIT_OR = '1.2.840.113556.1.4.804';
  315. {$EXTERNALSYM LDAP_MATCHING_RULE_BIT_OR}
  316. LDAP_MATCHING_RULE_BIT_OR_W = '1.2.840.113556.1.4.804';
  317. {$EXTERNALSYM LDAP_MATCHING_RULE_BIT_OR_W}
  318. implementation
  319. end.