此自动生成的代码注册了一个新用户:
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实例的位置。有没有示例或文档?
答案 0 :(得分:1)
RTM版本似乎已经删除了AuthenticationIdentityManager。尝试升级到最新的预发布版本。
在最新版本中,您可以向UserManager提供PasswordValidator实现。这样可以在您的应用中自定义密码强度验证。
ASP.NET Identity nighlty packages are now available on MyGet