ASP.NET 身份 - 如何在以编程方式创建用户时更改密码要求
ASP.NET Identity - how to change password requirements when creating user programmatically
我正在使用带有 Individual User Accounts
身份验证的默认 ASP.NET Core 1.1 模板。 VS2015
上的以下代码抱怨密码要求(例如长度要求、大写、小写等)。我知道我们可以使用 DataAnnotations
对内置 RegisterViewModel
设置这些要求。但是由于我是在不使用任何 ViewModel 的情况下以编程方式创建用户,因此 DataAnnotations
将不起作用。 问题:如何更改密码要求并能够运行以下代码:
List<String> usersList = GetAllUsers();
foreach (string s in usersList)
{
var user = new ApplicationUser { UserName = s, UserRole = "TestRole" };
var result = await _userManager.CreateAsync(user, "testpassword");
}
您可以在 AddIdentity 方法中添加选项...
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.Password.RequireDigit = false;
options.Password.RequireLowercase = false;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = false;
options.Password.RequiredLength = 1;
options.User.AllowedUserNameCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@.";
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddMvc();
// Add application services.
services.AddTransient<IEmailSender, AuthMessageSender>();
services.AddTransient<ISmsSender, AuthMessageSender>();
}
Microsoft Docs 网站上有最新的教程。
Introduction to Identity on ASP.NET Core
您可以使用的其他设置的示例代码中有更多信息,例如“options.Password”。
我正在使用带有 Individual User Accounts
身份验证的默认 ASP.NET Core 1.1 模板。 VS2015
上的以下代码抱怨密码要求(例如长度要求、大写、小写等)。我知道我们可以使用 DataAnnotations
对内置 RegisterViewModel
设置这些要求。但是由于我是在不使用任何 ViewModel 的情况下以编程方式创建用户,因此 DataAnnotations
将不起作用。 问题:如何更改密码要求并能够运行以下代码:
List<String> usersList = GetAllUsers();
foreach (string s in usersList)
{
var user = new ApplicationUser { UserName = s, UserRole = "TestRole" };
var result = await _userManager.CreateAsync(user, "testpassword");
}
您可以在 AddIdentity 方法中添加选项...
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
options.Password.RequireDigit = false;
options.Password.RequireLowercase = false;
options.Password.RequireNonAlphanumeric = false;
options.Password.RequireUppercase = false;
options.Password.RequiredLength = 1;
options.User.AllowedUserNameCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@.";
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddMvc();
// Add application services.
services.AddTransient<IEmailSender, AuthMessageSender>();
services.AddTransient<ISmsSender, AuthMessageSender>();
}
Microsoft Docs 网站上有最新的教程。
Introduction to Identity on ASP.NET Core
您可以使用的其他设置的示例代码中有更多信息,例如“options.Password”。