我正在为我的 .net 应用程序实现自定义成员资格提供程序。我已经为最少数量的字符和非字母数字字符设置了配置,但它似乎仍然允许密码通过,即使它们违反了规则。
OnValidatingPassword 是一个虚方法。Microsoft的示例没有覆盖该方法。
这个问题解决了同样的问题,但作者放弃了得到他的问题的答案,只是简单地覆盖了这个函数。该答案表明,不必重写该功能即可使其工作。
基本功能不做任何事情吗?当我重写 OnValidatePassword 并简单地调用基类时,我的函数被命中,但它从不拒绝我过于简单的密码。
代码示例(带有自定义 CreateUser 函数)
protected override void OnValidatingPassword(ValidatePasswordEventArgs e)
{
base.OnValidatingPassword(e);
}
//
// MembershipProvider.CreateUser
//
public MembershipUser CreateUser(string username, string password, string globalIdentifier, string firstName, string lastName,
string birthDate, object providerUserKey, out MembershipCreateStatus status)
{
ValidatePasswordEventArgs args = new ValidatePasswordEventArgs(username, password, true);
OnValidatingPassword(args);
if (args.Cancel)
{
status = MembershipCreateStatus.InvalidPassword;
return null;
}