C#MembershipUser.ChangePassword仅对一个用户失败?

我在ASP.NET MVC-2应用程序中使用标准AspNetSqlMembershipProvider的更改密码function:

MembershipUser user = Membership.GetUser(userId); string pwd = user.ResetPassword(); if (user.ChangePassword(pwd, confirmPassword)) { // it worked } 

这适用于绝大多数用户,但有一些用户无法更改其密码 – user.ChangePassword()只返回false。

我自己试了一下,看看发生了什么,并为该用户输入了一个简单的密码12345678,但未能改变。

所以这不是因为他们输入的密码与密码规则不符。 我的web.config具有如下定义的成员资格提供程序:

  

它只是AspNetSqlMembershipProvider的正常定义,这里没什么好看的。

为什么一个用户(我)能够将其密码更改为12345678,但另一个用户无法将其密码更改为12345678? 此其他用户无法将其密码更改为任何内容。

听起来这些用户被锁定了。

MembershipUser.ChangePassword调用SqlMembershipProvider.ChangePassword ,如果用户被锁定,则返回false