2

我使用 ASP.NET Membership 来管理我网站上的用户。但是我需要手动创建用户帐户,而不需要 CreateUserWizard 的帮助。我已经为必填字段设置了文本框,现在我正在设置验证器。

问题是:如何创建一个验证器来查看用户在文本框中输入的密码是否有效?

我知道密码必须具有特定的格式,但可以更改,我希望验证器即使更改也能正常工作。所以正则表达式验证器不起作用(我认为)

4

3 回答 3

3

似乎没有一个简单的方法。但是,您可以使用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
    }
}
于 2010-01-26T19:59:46.267 回答
0

您可以动态设置正则表达式验证器的正则表达式。

private void Page_Load(object sender, EventArgs e)
{
    passwordValidator.ValidationExpression = someConfiguration.GetPasswordValidationExpression();
}
于 2009-06-07T16:54:20.373 回答
0

您反对使用 CreateUserWizard 的(变体)是什么?如果它与需要其他字段或布局有关,则可以通过以下方式解决:

  1. 如何:自定义 CreateUserWizard - 查看“自定义 CreateUserWizard 步骤”部分。
  2. ASP.NET 2.0 CSS 友好控制适配器(这些将内置到 ASP.NET 4.0 中)

但即使是默认的 CreateUserWizard 也不进行客户端密码验证,我想正是出于这个原因:(

于 2009-09-01T09:45:37.380 回答