Членство в ASP.Net сохраняет измененный пароль в виде обычного текста даже при установленном хешированном пароле.
Я использую ASP.Net SqlMembershipProvider для управления моими пользователями. Вот мой конфиг:
<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>
Моя проблема заключается в следующем: когда я вызываю Membership.CreateUser для создания новых пользователей, пароль хранится в БД в хешированном формате с солью - и это все хорошо. Однако, когда я вызываю Membership.ChangePassword в функции администратора, он сохраняет пароль в текстовом формате. Я действительно не могу понять это поведение, так как в конфигурации четко написано «Хэширование», а создание нового пользователя создает хэшированный пароль.