Liste aller Codebeispiele
Ein Beispiel zum Einsatz der Klasse System.DirectoryServices.DirectoryEntry aus der .NET-Klassenbibliothek.
Autor: Dr. Holger Schwichtenberg
Beschreibung
Das Anlegen eines Benutzers mit dem WinNT-Provider ist dem Anlegen eines Benutzers mit dem LDAP-Provider sehr ähnlich. Allerdings gibt es keine Pflichtattribute, die zu setzen sind. Das Löschen ist völlig analog und kann daher mit der allgemeinen Hilfsroutine ADSI_Loeschen_Rekursiv("Benutzer_DN") erfolgen.
Programmcodebeispiele Visual Basic .NET (VB.NET)
' --- Demo-Daten für WINNT-Provider
Const COMPUTER = "mars"
Const BENUTZER = "HSch"
' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Anlegen eines Benutzers mit dem WinNT-Provider
' (C) Holger@Schwichtenberg.de
' ============================
Sub WINNT_Benutzeranlegen()
Dim o As DirectoryEntry
Dim c As DirectoryEntries
Dim Benutzer_DN As String
Benutzer_DN = "WinNT://" & COMPUTER & "/" & BENUTZER
outtitle("Benutzer anlegen:" & Benutzer_DN)
' -- Prüfung, ob Objekt vorhanden ist
If DirectoryEntry.Exists(Benutzer_DN) Then
out("Benutzer bereits vorhanden...")
ADSI_Loeschen_Rekursiv(Benutzer_DN)
End If
' --- Zugriff auf IADs
o = New DirectoryEntry("WinNT://" & COMPUTER)
' --- Zugriff auf IADsContainer
c = o.Children()
' --- Neues Objekt erzeugen
o = c.Add(BENUTZER, "user")
' --- Verzeichnisattribute festlegen
o.Invoke("setpassword", "123456789")
o.CommitChanges()
o.NativeObject.AccountDisabled = False
o.CommitChanges()
out("Benutzer angelegt!")
End Sub
Programmcodebeispiele CSharp (C#)
using System;
using System.Collections;
using System.DirectoryServices;
namespace FCL_Buch._System_DirectoryServices {
public class Samples_ADSI_WINNT {
public void WINNT_Benutzeranlegen() {
// Anlegen eines Benutzers mit dem WinNT-Provider
string Benutzer_DN = "WinNT://" + COMPUTER + "/" + BENUTZER;
FclOutput.PrintOutSubHeader("Benutzer anlegen:" + Benutzer_DN);
// Prüfung, ob Objekt vorhanden ist
if (DirectoryEntry.Exists(Benutzer_DN)) {
FclOutput.PrintOut("Benutzer bereits vorhanden...");
ADSI_HelperMethods.ADSI_Loeschen_Rekursiv(Benutzer_DN);
}
// Zugriff auf IADs
DirectoryEntry o = new DirectoryEntry("WinNT://" + COMPUTER);
// Zugriff auf IADsContainer
DirectoryEntries c = o.Children;
// Neues Objekt erzeugen
o = c.Add(BENUTZER, "user");
// Verzeichnisattribute festlegen
o.Invoke("setpassword", "123456789");
o.CommitChanges();
((ActiveDs.IADsUser)o.NativeObject).AccountDisabled = false;
o.CommitChanges();
FclOutput.PrintOut("Benutzer angelegt!");
}
}
}
Querverweise
Definition '.NET Framework Class Library'
Verfügbarkeit der Klasse 'System.DirectoryServices'
Übersicht über den FCL-Namensraum 'System.DirectoryServices'
Portal dotnetframework.de
|