Kurz vor Fertigstellung der Beta 2 von ASP.NET wurde in den Membership Providern noch einiges geändert. So ist der AccessMembership Provider gestrichen worden. Aber selbst beim Anlegen eines Benutzer mit dem CreateUserWizard Control scheitert man an dem erstellen des Passwortes. Die Fehlermeldung ist nichtsagend (Please enter a diffrent Password) und dokumentiert ist auch nichts.
Kurz gesagt das Passwort muss nun bei der Verwendung des SQLMembership Providers mindestens 7 Zeichen lang und eines davon darf kein Buchstabe sein sondern muss ein Sonderzeichen sein. Also z.B.
abcdef!
Durch Attribute bei der Deklaration des Membership Providers lässt sich dieses Verhalten aber ändern. Dabei können die Gesamtlänge und die Anzahl der Sonderzeichen definiert werden.
minRequiredPasswordLength="3"
minRequiredNonalphanumericCharacters="0" |
Diese Einstellung lässt sich in der Machine.Config im Membership Bereich ergänzen oder in der Web.Config der Anwendung überschreiben. Dazu muss aber vorher der Provider entfernt werden um dann wieder hinzugefügt werden zu können.
<membership defaultProvider="AspNetSqlMemberhsipProvider"> <providers><remove name="AspNetSqlMembershipProvider"/> <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="LocalSqlServer" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="4" /> </providers> </membership> |
Es gibt noch ein weiteres Attribut mit dem man mit Hilfe von regulären Ausdrücken die Passwort Richtlinien steuern kann, PasswordStrengthRegularExpression. Dafür kenne ich aber bis heute keine Sinnvollen Werte.