Freigeben über


Syntax des ADSI-Attributs

Jedes Attribut im Verzeichnis verfügt über eine zugeordnete Syntax. Beispielsweise ganzzahlige Zahlen, Zeichenfolgen, numerische Usw. ADSI definiert eine eigene Syntax, die der nativen Verzeichnissyntax zugeordnet ist. In diesem Abschnitt werden die Typen von Attributsyntaxen in ADSI beschrieben.

Distinguished Name String

Syntax Type: ADSTYPE_DN_STRING

Der distinguished Name ist nützlich, um zwei Objekte miteinander zu verknüpfen. Sie kann beispielsweise einen Link erstellen, der das Alice-Objekt zu einem Manager des Bob-Objekts macht. Wenn das Alice-Objekt an einen anderen Ort verschoben wird, wird die Managerverbindung zwischen Alice und Bob automatisch aktualisiert.

Der distinguished Name muss ein gültiges Distinguished Name-Objekt enthalten. Wenn der distinguished Name nicht einem gültigen vorhandenen Objekt entspricht, weisen die meisten Server die Anforderung ab und geben einen Fehler aufgrund einer Einschränkungsverletzung zurück.

Beispiele:

Set x = GetObject("LDAP://CN=Bob, OU=Sales,DC=Fabrikam, DC=com)
x.Put "manager", "CN=Alice, OU=Sales, DC=Fabrikam, DC=COM"
x.SetInfo
 
PADS_ATTR_INFO pInfo;
// .. IDirectoryObject::GetObjectAttribute
printf("%S\n", pInfo->pADsValues->DNString );

Zeichenfolge für Groß-/Kleinschreibung und Groß-/Kleinschreibung ignorieren

Syntax Types: ADSTYPE_CASE_IGNORE_STRING, ADSTYPE_CASE_EXACT_STRING.

Genaue Zeichenfolge ist eine Zeichenfolge, bei der die Groß-/Kleinschreibung beachtet wird, während die Zeichenfolge "Groß-/Kleinschreibung ignoriert" eine Zeichenfolge ist, bei der die Groß-/Kleinschreibung nicht beachtet wird. Ein großer Prozentsatz der Attribute im Verzeichnis verwendet diese Syntax.

Hinweis

Das Verzeichnis kann dies als Unicode-Zeichenfolge speichern oder auch nicht. ADSI akzeptiert jedoch Unicode-Zeichenfolgen und gibt diese zurück.

 

Beispiel:

Dim propList As IADsPropertyList
Set propList = GetObject("LDAP://DC=Fabrikam,DC=com")
Set propVal = New PropertyValue
 
' --- Property Value ---
propVal.CaseIgnoreString = "Fabrikam, Inc - Seattle, WA"
propVal.ADsType = ADSTYPE_CASE_IGNORE_STRING

Druckbare Zeichenfolge

Syntax Type: ADSTYPE_PRINTABLE_STRING

Diese Syntax wird für Attribute mit Zeichenfolgenwerten verwendet, bei denen Groß- und Kleinbuchstaben für Vergleiche als ungleich gelten, z. B. stimmen "FABRIKAM" und "Fabrikam" nicht überein. ADSI akzeptiert alle Inhalte für eine druckbare Zeichenfolge; es versucht nicht zu überprüfen, ob sie tatsächlich druckbar sind.

Numerische Zeichenfolge

Syntax Type: ADSTYPE_NUMERIC_STRING

In dieser Syntax stimmen Zeichenfolgen wie in Druckbare Zeichenfolge überein, mit der Ausnahme, dass alle Leerzeichen in Vergleichen ignoriert werden. ADSI führt keine Wertüberprüfung durch, um sicherzustellen, dass nur Zahlen und Leerzeichen in Werten dieser Syntax angezeigt werden. Active Directory akzeptiert alle Inhalte für eine numerische Zeichenfolge. Es wird nicht überprüft, ob die Zeichen numerisch sind.

UTC-Zeit

Syntax Type: ADSTYPE_UTC_TIME

Mit dieser Syntax werden Datum und Uhrzeit in einer einzelnen Zeichenfolge gespeichert. Das Zeichenfolgenformat besteht aus drei verketteten Teilen: (1) JJJJMMD; (2) HHMM oder HHMMSS (beide sind akzeptabel); und (3) "Z", um anzugeben, dass die angegebene Zeit Greenwich Mean Time (GMT) ist, oder "+/-HHMM", um anzugeben, dass die angegebene Zeit Ortszeit mit der angegebenen Differenz von GMT ist. Das Differenzial basiert auf der Formel: GMT=Local+differential.

Hinweis

Die ersten beiden Ziffern des Jahres werden nicht in dieser Zeichenfolge gespeichert.

 

Beispiele für Rechtswerte sind "9101311455Z", "910131145503Z", "9101314455-0500", "910131145503+0130". Diese Zeichenfolge wird als ASCII-Zeichen mit Einem Byte gespeichert, und es wird keine Codepagenummer damit gespeichert.

Obwohl die Reihenfolge unterstützt wird, erfolgt sie nur als ASCII-Zeichenfolgensortierung ohne Beachtung der Groß-/Kleinschreibung, nicht durch ordnungsgemäße Interpretation der Bedeutung der Zeichenfolgen.

Jeder gültige Zeichenfolgenwert wird akzeptiert. Es wird nicht versucht, sicherzustellen, dass die Zeichenfolge eine gültige Zeitzeichenfolge enthält.

Generalisierte Zeit

Syntax Type: ADSTYPE_UTC_TIME

Wenn ein neues Attribut zum Speichern von Zeitwerten definiert wird, sollte die GeneralizedTime-Syntax verwendet werden. Die GeneralizedTime-Syntax verwendet vier Zeichen, um das Jahr darzustellen, statt wie bei UTCTime zwei Zeichen.

Das Format für die GeneralizedTime-Syntax ist "JJJJMMDHHMMSS.0Z". Ein Beispiel für einen akzeptablen Wert ist "20010928060000.0Z". Das "Z" gibt kein Zeitdifferenzial an. Active Directory speichert Datum/Uhrzeit als Greenwich Mean Time (GMT). Wenn kein Zeitdifferenzial angegeben wird, ist GMT der Standardwert.

Wenn die Zeit in einer anderen Zeitzone als GMT angegeben wird, wird die Differenz zwischen Zeitzone und GMT an die Zeichenfolge anstelle von "Z" in der Form "JJJJMMDDHMMSS.0[+/-]HHMM" angefügt. Ein Beispiel für einen zulässigen Wert ist "20010928060000.0+0200".

Das Differenzial basiert auf der Formel: GMT=Local+differential.

Boolean

Syntax Type: ADSTYPE_BOOLEAN

Active Directory akzeptiert nur einen signierten 32-Bit-Wert für diese Syntax. Es verarbeitet null als FALSE und alle nichtzero-Werte als TRUE.

Integer

Syntax Type: ADSTYPE_INTEGER

Ein numerischer Wert mit 32-Bit-Vorzeichen.

Große ganze Zahl

Syntax Type: ADSTYPE_LARGE_INTEGER

Ein numerischer Wert mit 64-Bit-Vorzeichen. Große ganze Zahlen werden tatsächlich als COM-Objekte auf der IADsLargeInteger-Schnittstelle implementiert. Die Methoden HighPart und LowPart werden verwendet, um auf die beiden 32-Bit-Hälften des großen ganzzahligen Werts zuzugreifen.

Beispiel:

Dim x as IADsLargeInteger
Set o = GetObject("LDAP://DC=Fabrikam,DC=com")
Set x = o.Get("UsnCreated")
Debug.Print x.HighPart
Debug.Print x.LowPart

Oktettzeichenfolge

Syntax Type: ADSTYPE_OCTET_STRING

Eine Oktettzeichenfolge wird als Variantenarray von Bytes zurückgegeben. Dies besteht aus einer Größenanzahl (Anzahl der Oktette) gefolgt von einer Reihe von Oktetten. Ein Oktett ist ein 8-Bit-Byte, sodass eine Reihe von Oktetten eine Zeichenfolge von Binärdaten ist.

Objektklasse

Syntax Type: ADSTYPE_CASE_IGNORE_STRING

Object Class ist ein eindeutiger Objektbezeichner für eine bestimmte Schemaklasse. Die Klasse jedes Objekts instance wird durch das objectClass-Attribut identifiziert. Bei der Erstellung können Sie eine Objektklasse nie ändern. objectClass ist ein attribut mit mehreren Werten. Sie listet die spezifische Klasse des -Objekts und die Klassen aller strukturellen oder abstrakten Klassen auf, von denen die spezifische Klasse abgeleitet wurde. Dazu gehört Top, die Klasse, von der letztendlich alle anderen Klassen abgeleitet werden. Active Directory listet keine Hilfsklassen im objectClass-Attribut auf.

Sicherheitsbeschreibung

Syntax Type: ADSTYPE_NT_SECURITY_DESCRIPTOR

Die Zugriffsrechte definieren, welche Fähigkeiten ein Sicherheitsprinzipal besitzt, wenn er versucht, einen Vorgang für ein Active Directory-Objekt auszuführen. Ein Sicherheitsdeskriptor beschreibt die Zugriffssteuerungsinformationen, die einem Objekt zugeordnet sind.

Der Sicherheitsdeskriptor wird als Eigenschaft eines Verzeichnisobjekts in der nTSecurityDescriptor-Eigenschaft gespeichert. Wenn ein authentifizierter Benutzer versucht, auf ein Verzeichnisobjekt zuzugreifen, bestimmt der Verzeichnisserver den Zugriff, der dem Benutzer gewährt oder verweigert wird, basierend auf der Objektsicherheitsdeskriptor.

Die ADS_SD_CONTROL_ENUM-Enumeration gibt Steuerelementflags für einen Sicherheitsdeskriptor an.

Das folgende Codebeispiel zeigt, wie Sie eine Sicherheitsbeschreibung abrufen.

' Obtain a security descriptor.
Dim x as IADs
Dim sd as IADsSecurityDescriptor
Dim acl as IADsAccessControlList
 
Set x = GetObject("LDAP://DC=Fabrikam, DC=com")
Set sd = x.Get("nTSecurityDescriptor")
 
Debug.Print sd.Control
Debug.Print sd.Group
Debug.Print sd.Owner
Debug.Print sd.Revision
 
Set acl = sd.DiscretionaryAcl
Set sacl = sd.SystemAcl

Syntaxen für Active Directory-Attribute

Auswählen einer Syntax

Angeben von Vergleichswerten