Ich verwende den ASP.Net SqlMembershipProvider, um meine Benutzer zu verwalten. Hier ist meine Konfiguration:
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
<providers>
<clear />
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="SiteDatabase"
applicationName="WPR"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed" />
</providers>
</membership>
Mein Problem ist folgendes: Wenn ich Membership.CreateUser aufrufe, um neue Benutzer zu erstellen, wird das Kennwort in der DB im Hash-Format mit einem Salz gespeichert - das ist alles gut. Wenn ich jedoch Membership.ChangePassword in einer Admin-Funktion aufrufe, wird das Kennwort im Klartextformat gespeichert. Ich kann dieses Verhalten wirklich nicht verstehen, da in der Konfiguration eindeutig "Hash" steht und beim Anlegen eines neuen Benutzers ein Hash-Passwort erstellt wird.