1

此自动生成的代码注册了一个新用户:

var manager = new AuthenticationIdentityManager(new IdentityStore());
User u = new User(userName) { UserName = userName };

IdentityResult result = manager.Users.CreateLocalUser(u, Password.Text);
if (result.Success) 
{ ... }

我们如何更改密码验证设置?
这是我使用 dotPeek 发现的:
AuthenticationIdentityManager 类实例包含 UserManager,它使用 PasswordValidator 验证密码:
来自 Microsoft.AspNet.Identity.UserManager 类:

result = this.PasswordValidator.Validate(password);

internal IStringValidator PasswordValidator
{
  get
  {
    return this.Manager.Settings.GetIdentityOptions().PasswordValidator;
  }
}

Microsoft.AspNet.Identity.IdentityOptions 类:

public IdentityOptions()
{
  this._defaultPasswordValidator = new IdentityOptions.DefaultPasswordValidator(this);
  this._defaultUserNameValidator = new IdentityOptions.DefaultUserNameValidator(this);
  this.MinRequiredPasswordLength = 6;
  this.LocalLoginProvider = "Local";
}

public IStringValidator PasswordValidator
{
  get
  {
    return this._passwordValidator ?? (IStringValidator) this._defaultPasswordValidator;
  }
  set
  {
    this._passwordValidator = value;
  }
}

我找不到可以访问或替换 IdentityOptions 实例的位置。有没有示例或文档?

4

1 回答 1

1

RTM 版本似乎已删除 AuthenticationIdentityManager。尝试升级到最新的预发布版本。

在最新版本中,您可以向 UserManager 提供 PasswordValidator 实现。这将在您的应用中启用密码强度验证的自定义。

ASP.NET Identity nighlty 包现在可在 MyGet 上使用

于 2013-10-14T07:07:48.580 回答