ASP.NET成员身份验证密码

时间:2009-06-07 16:48:47

标签: asp.net membership

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

问题是:如何制作验证器,以查看用户在文本框中输入的密码是否有效?

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

3 个答案:

答案 0 :(得分:3)

似乎没有一种简单的方法。但是,您可以使用带有Membership.CreateUser参数的MembershipCreateStatus

如果密码有效,则创建的用户对象将为null,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
    }
}

答案 1 :(得分:0)

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

private void Page_Load(object sender, EventArgs e)
{
    passwordValidator.ValidationExpression = someConfiguration.GetPasswordValidationExpression();
}

答案 2 :(得分:0)

您对使用CreateUserWizard(变体)的反对意见是什么?如果需要其他字段或布局,可以采用以下方法:

  1. How to: Customize the CreateUserWizard - 请查看“自定义CreateUserWizard步骤”部分。
  2. ASP.NET 2.0 CSS Friendly Control Adaptors(这些将在ASP.NET 4.0中构建)
  3. 但即使是默认的CreateUserWizard也没有进行客户端密码验证,我想这是因为:(