Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

NT Account Management via ASP

Geschrieben von: Christian Holm
Kategorie: Sicherheit

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 Benutzerkontos

Die 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 Benutzers

Es 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ßbemerkung

Dies 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 Codes

Klicken Sie hier, um den Download zu starten.

Verwandte Artikel

Dateizugriff auf Netzlaufwerken
Impersonation mit ASP.NET
Schritt-für-Schritt Debuggen von Sicherheitsproblemen
Web-basiertes Dateimanagement mit dem ASP FileMan

Links zu anderen Sites

AspUser Komponente

Wenn 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.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.