我使用 ASP.NET Membership 来管理我网站上的用户。但是我需要手动创建用户帐户,而不需要 CreateUserWizard 的帮助。我已经为必填字段设置了文本框,现在我正在设置验证器。
问题是:如何创建一个验证器来查看用户在文本框中输入的密码是否有效?
我知道密码必须具有特定的格式,但可以更改,我希望验证器即使更改也能正常工作。所以正则表达式验证器不起作用(我认为)
我使用 ASP.NET Membership 来管理我网站上的用户。但是我需要手动创建用户帐户,而不需要 CreateUserWizard 的帮助。我已经为必填字段设置了文本框,现在我正在设置验证器。
问题是:如何创建一个验证器来查看用户在文本框中输入的密码是否有效?
我知道密码必须具有特定的格式,但可以更改,我希望验证器即使更改也能正常工作。所以正则表达式验证器不起作用(我认为)
似乎没有一个简单的方法。但是,您可以使用Membership.CreateUser
带有MembershipCreateStatus
参数的 。
如果密码有效,则创建的用户对象将为空,并且 MembershipCreateStatus 将设置为InvalidPassword
(或任何其他创建状态)。
例子:
MembershipCreateStatus membershipCreateStatus;
MembershipUser newUser = Membership.CreateUser(userName, password, email, passwordQuestion, passwordAnswer, true, out membershipCreateStatus);
// Check if the user was created succesfully
if (newUser == null)
{
// membershipCreateStatus contains the information why the creation was not successful
if (membershipCreateStatus == MembershipCreateStatus.InvalidPassword)
{
// The password doesn't match the requirements
}
}
您可以动态设置正则表达式验证器的正则表达式。
private void Page_Load(object sender, EventArgs e)
{
passwordValidator.ValidationExpression = someConfiguration.GetPasswordValidationExpression();
}
您反对使用 CreateUserWizard 的(变体)是什么?如果它与需要其他字段或布局有关,则可以通过以下方式解决:
但即使是默认的 CreateUserWizard 也不进行客户端密码验证,我想正是出于这个原因:(