ASP.NET MVC-2 アプリで、標準の AspNetSqlMembershipProvider のパスワード変更機能を使用しています。
MembershipUser user = Membership.GetUser(userId);
string pwd = user.ResetPassword();
if (user.ChangePassword(pwd, confirmPassword))
{
// it worked
}
これは大多数のユーザーで機能しますが、パスワードを変更できず、user.ChangePassword()
false を返すだけのユーザーが 2 人います。
何が起こっているのかを自分で試してみましたが、そのユーザーの簡単なパスワード 12345678 を入力しましたが、変更できませんでした。
したがって、パスワード規則に一致しないパスワードを入力しているからではありません。私の web.config には、メンバーシップ プロバイダーが次のように定義されています。
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider"
connectionStringName="MembershipDatabaseConnectionString" enablePasswordRetrieval="false"
enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="true"
maxInvalidPasswordAttempts="5" minRequiredPasswordLength="8"
minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
これは AspNetSqlMembershipProvider の通常の定義に過ぎず、特別なことは何もありません。
あるユーザー (私) はパスワードを 12345678 に変更できるのに、別のユーザーはパスワードを 12345678 に変更できないのはなぜですか? この他のユーザーは、自分のパスワードを何にも変更できません。