NT Account Management via ASP
Geschrieben von: Christian Holm Suchen Sie nach einer einfachen Möglichkeit Windows NT/2000 Benutzerkonten mittels ASP zu verwalten? Wenn ja, dann bietet dieser Artikel genau das, wonach Sie suchen. Die heute vorgestellte AspUser Komponente bietet die Möglichkeit Benutzerkonten lokal oder auf einem Remote Server zu managen - natürlich auch Domänenbenutzerkonten. Der heutige Artikel beschreibt die grundlegendsten Funktionen der Komponente - also das Anlegen und Konfigurieren eines Benutzerkontos, sowie dessen Löschung. Die 30-Tage Evaluierungsversion der AspUser 1.1 Komponente von Persits Software, Inc. können Sie hier kostenlos downloaden. Die Komponente kann per Server oder per Enterprise erworben werden, was sich auch auf den Preis entsprechend auswirkt. Anlegen eines BenutzerkontosDie Komponente ist sehr komfortabel und der Programmieraufwand ist gering. Nach der Installation sind eigentlich schon alle Vorbereitungen für die Erstellung einer ASP Account Management Seite getroffen. Beginnen wir also gleich mit der Besprechung des Sourcecodes. Mit dem vorbereiteten Beispielscript können Sie einen neuen Benutzer anlegen und die wichtigsten Optionen für das Konto setzen. Das Script legt den neuen Benutzer am lokalen Server an. Natürlich kann man das Script leicht abändern um neue Benutzer auf einem anderen Server als dem lokalen zu erstellen. Set AspUser = Server.CreateObject("Persits.AspUser") AspUser.LogonUser "", "Administrator", "ValidPWDHere" Zuerst müssen wir uns einloggen um überhaupt ein Konto erstellen zu können. Die Parameterreihenfolge ist DomainName, Benutzer, Paßwort. Wie ich schon erwähnt habe, logge ich mich am lokalen Server ein - daher bleibt auch der Domainname leer. Bevor ich nun die Eingabewerte der Komponente übergebe, validiere ich die Eingaben gegen die wichtigsten Anforderungen. Hier überprüfe ich ob der Benutzer bereits angelegt wurde: For Each User In AspUser.LocalUsers If Request("Name") = User.Name Then Response.Write "User already exists" Response.End End If Next Es folgen Validierungen auf die Gültigkeit des Paßwortes: If Request("PWD") = "" And Request("CannotChangePwd") = 1 Then Response.Write "Settings require to enter a password" Response.End End If Wenn die Einstellung User Cannot Change Password gesetzt wurde, verlange ich zwingend nach einem Paßwort. Ohne Paßwort habe ich eigentlich nichts auf Windows NT/2000 verloren. Beherzigen Sie das eben festgestellte - jedem Benutzer sein Paßwort - dann können Sie durch eine strikte Forderung nach einer bestimmten Paßwortlänge den vorigen Code durch diesen ersetzen: If Len(Request("PWD")) < 8 Then Response.Write "Password must have at least 8 chars" Response.End End If Für den Fall, daß man sich vertippt hat, und das Paßwort mit der Bestätigung nicht übereinstimmt, so wird dies durch folgende Validierung berücksichtigt: If Request("PWD") <> Request("CPWD") Then Response.Write "Password confirmation failed." Response.End End If Nun übergeben wir die Eingabewerte der Komponente, die daraufhin das Benutzerkonto anlegt: Set NewUser = AspUser.AddLocalUser(Request("Name"), Request("PWD"), Request("Description")) NewUser.Fullname = Request("Fullname") NewUser.MustChangePassword = (Request("MustChangePwd") <> "") NewUser.CannotChangePassword = (Request("CannotChangePwd") <> "") NewUser.PasswordNeverExpires = (Request("PwdNeverExpires") <> "") NewUser.Accountdisabled = (Request("Disabled") <> "") NewUser.AddToGroup(Request("MemberOf")) NewUser.SetInfo Nach erfolgreicher Erstellung des neuen Kontos wir ddiese Meldung mit Hinweis auf den Benutzernamen ausgegeben: Response.Write "User <b>" & Request("Name") & "</b> added.<hr>" Da die ASP Seite auf sich selbst einen PostBack tätig, können Sie nun weitere Benutzer eingeben. Der nächste Screenshot zeigt die auf einem Server ausgeführte AddUser.asp Datei mit bereits eingegebenen Daten.
Die Auswahl der Zugehörigkeit zu einer Benutzergruppe erfolgt durch eine Auswahl in der Is member of DropDown Combobox. Im MMC Snap-In Local Users and Groups finden wir dann auch den neuen Benutzter (hier: "John Doe"):
Der umgekehrte Vorgang zum Hinzufügen ist der des Löschens - und folgt sogleich. Löschen eines BenutzersEs soll vorkommen, daß manche Konten nicht mehr gebraucht werden und aus Sicherheitsgründen nicht einfach deaktiviert werden können, sondern gänzlich gelöscht werden müssen. Für diesen Fall ist folgendes ASP-Script zuständig (DeleteUser.asp): Set AspUser = Server.CreateObject("Persits.AspUser") AspUser.LogonUser "", "Administrator", "ValidPWDHere" If Request("Delete") <> "" Then AspUser.DeleteLocalUser Request("Users") End If Die endgültige Löschung erfolgt durch die DeleteLocalUser Methode und Angabe des Benutzernamens. In diesem Script habe ich auf triviale Weise vermieden, daß die standardmäßig installierten Konten bei der Auswahl angezeigt werden: <select NAME="Users"> <option selected>-Select User-</option> <% For Each User in AspUser.LocalUsers If InStr(User.Comment,"account") = 0 Then %> <option><%= User.Name %></option> <% End If Next %> </select> Im Browser präsentiert sich dieses Script folgendermaßen:
SchlußbemerkungDies war ein schneller Einblick in die AspUser Komponente, der Ihnen die wichtigsten Funktionen für das browserunterstützte Benutzermanagement erklärt hat. Wie gesagt lassen sich mit der Komponente auch Benutzer innerhalb von Domains verwalten. Die Komponente ist einfach zu gebrauchen und verfügt über eine Vielzahl von Einstellungsmöglichkeiten. Aber Achtung - ohne SSL transportiert man wichtige NT Kontendaten ungeschützt über das Netzwerk! Download des CodesKlicken Sie hier, um den Download zu starten. Verwandte Artikel
Dateizugriff auf Netzlaufwerken Links zu anderen SitesWenn Sie jetzt Fragen haben...Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten. Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.
Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.
©2000-2006 AspHeute.com |