DevTrain

Autor: Hannes Preishuber

Benutzerverwaltung mit Web.Config

Das Sicherheitsmodell in ASP+ ist einer der Gründe um umzusteigen. Die Verwaltung erfolgt zum einem zentralisiert in der XML Datei Web.Config und zum anderen sind für die Benutzeranmeldung Services enthalten.

Die übliche Vorgehensweise ist, das ein Loginformular erzeugt wird in dem Benutzername und Passwort abgefragt werden. Dann erfolgt ein Zugriff auf eine SQL Datenbank oder ein Directory um den Benutzer zu authentifizieren. Diese allgemeine Methode möchte ich an anderer Stelle im Detail beschreiben. Hier geht es um die Besonderheit die Benutzer in über die Web.Config zu verwalten. In jedem Fall wird der Namespace Web.Security benötigt.

<%@ Import Namespace="System.Web.Security " %>


Zunächst wird ein Webformular für die Anmeldung benötigt.

Als nächstes nehmen wir die nötigen Änderungen in der Web.Config vor um die Anmeldung zu erzwingen.
Dann wird dem Anonymen Benutzer der Zugriff untersagt. Das Fragezeichen steht für den nicht angemeldeten Benutzer. Der Stern steht für alle.

<authorization>
  <deny users="?" />

Weiters wird in der gleichen Datei der Modus eingestellt auf Formular basierte Anmeldung. Achten Sie auf die exakte Schreibweise!

<authentication mode="Forms" />

Innerhalb des Authentication Elements werden die restlichen Einstellungen vorgenommen.
Wie der Name der Login Seite und der Anmeldecontextname.

<authentication mode="Forms">
   <forms name=".ASPXCOOKIEDEMO" loginUrl="login.aspx" protection="all" timeout="30"   path="/">
   </forms>
</authentication>

Jetzt kommen wir zur Benutzerverwaltung. Diese findet in der credentials Sektion statt.
Dabei wird der Benutzer und das Passwort gespeichert.

<authentication>
 
    <credentials passwordFormat="SHA1" >
        <user name="Hannes" password="GASDFSA9823598ASDBAD"/>
        <user name="Fritz" password="ZASDFADSFASD23483142"/>
    </credentials>


Dies kann auf drei Arten passieren (passwortformat).

  1. Clear  unverschlüsselt
  2. SHA1 SHA1 verschlüsselt
  3. MD5 MD5 verschlüsselt

Um die Schlüssel zu erzeugen kann eine Formular zur Benutzerverwaltung geschrieben werden. Siehe dazu Klasse System.Security.Cryptography.SHA1. Hier gibt es die Funktion Create. Aber auch die Klasse System.Web.Security.FormsAuthentication hat eine Komfort Methode für diesen Zweck: HashPasswordForStoringInConfigFile. Hier sehen Sie den vermutlichst längsten Funtkionsnamen aus dem Framework.

Voerst aber zur Abfrage des Benutzers. Nach drücken des Login Buttons wird folgender Code ausgeführt.

FormsAuthentication.Authenticate(txtName1.Text,txtPasswort.Text)

Nach Anmeldung können Sie über RedirectFromLoginPage den Benutzer zur ursprünlgich angeforderten Seite umleiten.

Diese Art der Userverwaltung ist sicher nur für eine begrenzte Anzahl geeignet. So lassen sich aber leicht die Administratoren verwalten. Die Datei web.config ist vor dem direktem Browserzugriff geschützt und kann vom normalen Benutzer daher nicht eingesehen werden.


Auf den angemeldeten Benutzer kann dann aus jeder Seite einfach über das User Objekt zugegriffen werden.

User.Identity.Name

Noch erwähnen möchte ich, das der Benutzername in einem Cookie abgelegt wird. Über die Signout Funktion wird dieses gelöscht.

Dieser Text bezieht sich auf die Beta 2 des .NET Frameworks.



Erfasst am: 12.09.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=624
© Copyright 2003 ppedv AG - http://www.ppedv.de