我使用ASP.NET Membership来管理我网站上的用户。 但我需要手动创建用户帐户,而无需CreateUserWizard的帮助。 我为必填字段设置了文本框,现在我正在设置验证器。
问题是:如何制作验证器,以查看用户在文本框中输入的密码是否有效?
我知道密码必须具有特定格式,但可以更改,我希望验证器即使发生变化也能正常工作。所以正则表达式验证器不起作用(我认为)
答案 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(变体)的反对意见是什么?如果需要其他字段或布局,可以采用以下方法:
但即使是默认的CreateUserWizard也没有进行客户端密码验证,我想这是因为:(