1

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 に変更できないのはなぜですか? この他のユーザーは、自分のパスワードを何にも変更できません。

4

1 に答える 1

0

これらのユーザーはロックアウトされているようです。

MembershipUser.ChangePasswordユーザーがロックアウトされている場合に返されるSqlMembershipProvider.ChangePasswordを呼び出します。false

于 2010-11-19T14:11:10.723 に答える