Kürzlich habe ich die neue Anmeldesteuerung in asp.net 2.0 untersucht und festgestellt, dass die Standardanforderungen an die Kennwortsicherheit des Systems relativ hoch sind, d. h. „die Mindestkennwortlänge beträgt 7, die die folgenden nicht alphanumerischen Zeichen enthalten muss: 1.“ "Für gewöhnliche Wang Zhan gibt es keine Notwendigkeit (selbst Windows2003sever erfordert standardmäßig kein so komplexes Passwort). Die von einigen Referenzmaterialien bereitgestellte Änderungsmethode besteht darin, sie in machine.config zu ändern. Sofern Sie jedoch nicht über Administratorrechte für den Host verfügen, können Sie ihn nicht ändern. Es wird daher weiterhin empfohlen, es in der Datei web.config zu ändern.
Die Methode besteht darin, Untertags zum Knoten <system.web> von web.config hinzuzufügen:
<Mitgliedschaft>
<Anbieter>
<remove name="AspNetSqlMembershipProvider"/>
<add name="AspNetSqlMembershipProvider"
type=" System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
ConnectionStringName="LocalSqlServer"
enablePasswordRetrieval="false"
enablePasswordReset="true"
erfordertQuestionAndAnswer="true"
applicationName="/"
erfordertUniqueEmail="false"
passwortFormat="Hashed"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwortAttemptWindow="10"
passwortStrengthRegularExpression="" />
</providers>
</Mitgliedschaft>
Lassen Sie uns die Schlüsselattribute erklären:
„connectionStringName“-Datenbankverbindung. Dies muss in web.config festgelegt werden
enablePasswordRetrieval Ruft einen Wert ab, der angibt, ob der aktuelle Mitgliedschaftsanbieter so konfiguriert ist, dass Benutzer ihre Passwörter abrufen können.
enablePasswordReset Ruft einen Wert ab, der angibt, ob der aktuelle Mitgliedschaftsanbieter so konfiguriert ist, dass Benutzer ihre Passwörter zurücksetzen können.
requireQuestionAndAnswer Ruft einen Wert ab, der angibt, ob der Standardmitgliedschaftsanbieter von Benutzern die Beantwortung einer Passwortfrage zum Zurücksetzen und Abrufen des Passworts verlangt.
applicationName ruft den Namen der Anwendung ab oder legt ihn fest.
requireUniqueEmail Gibt an, ob der Benutzer beim Erstellen des Benutzers einen eindeutigen E-Mail-Adresswert angeben muss.
„passwordFormat“ gibt das Format an, in dem Passwörter im Mitgliedsdatenspeicher gespeichert werden. Detaillierte Anweisungen unten
maxInvalidPasswordAttempts Ruft die Anzahl der zulässigen ungültigen Passwörter oder Antwortversuche mit ungültigen Passwörtern ab, bevor der Benutzer von der Mitgliedschaft ausgeschlossen wird.
minRequiredPasswordLength Ruft die für ein Passwort erforderliche Mindestlänge ab.
minRequiredNonalphanumericCharacters Ruft die Mindestanzahl an Sonderzeichen ab, die in einem gültigen Passwort enthalten sein müssen.
PasswordAttemptWindow Ruft die maximal zulässige Anzahl ungültiger Passwörter oder ungültiger Passwort-Antwortversuche in Minuten ab, bevor der Mitgliedschaftsbenutzer gesperrt wird.
Die Eigenschaft „detaillierte Beschreibung“ von PasswordFormat gibt das Format an, in dem Passwörter gespeichert werden. Passwörter können in den Formaten Klar, Verschlüsselt und Hash gespeichert werden. Klare Passwörter werden im Klartext gespeichert, was die Leistung beim Speichern und Abrufen von Passwörtern verbessert, aber weniger sicher ist und leicht gelesen werden kann, wenn die Sicherheit der Datenquelle gefährdet ist. Verschlüsselte Passwörter werden beim Speichern verschlüsselt und können beim Vergleichen oder Abrufen von Passwörtern entschlüsselt werden. Solche Passwörter erfordern beim Speichern und Abrufen eine zusätzliche Verarbeitung, sind jedoch sicherer und können nicht einfach wiederhergestellt werden, wenn die Sicherheit der Datenquelle gefährdet ist. Gehashte Passwörter werden mithilfe eines Einweg-Hashing-Algorithmus und eines zufällig generierten Salt-Werts gehasht, wenn sie in der Datenbank gespeichert werden. Wenn ein Passwort überprüft wird, wird das Passwort zur Überprüfung mit dem Salt-Wert in der Datenbank gehasht. Das gehashte Passwort kann nicht abgerufen werden.