此自动生成的代码注册一个新用户:
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;
}
}
我找不到可以访问或替换身份选项实例的位置。是否有任何示例或文档?
RTM版本似乎已经放弃了AuthenticationIdentityManager。尝试升级到最新的预发行版本。
在最新版本中,您可以向UserManager提供PasswordValidator实现。这将启用应用中密码强度验证的自定义。
ASP.NET Identity nighty 软件包现已在 MyGet 上可用