ASP中提供的默认身份提供程序.NET5默认情况下有非常严格的密码规则,需要小写字符、大写字符、非字母数字字符和数字.我正在寻找一种方法来更改Provider 的密码要求.

以前在ASP.NET 4,提供程序可以通过Web进行配置.配置XML文件,如previously answered所示.然而,ASP.NET5使用了新的基于代码的配置模式,目前尚不清楚如何配置身份.

如何更改应用程序的密码要求?

推荐答案

我最终发现,你需要为AddDefaultIdentity提供一个合适的lambda表达式来配置它提供的IdentityOptions.这是在Startup类中的ConfigureServices方法中完成的,如下所示:

public class Startup {
    public void ConfigureServices(IServiceCollection services) {

        // Add Identity services to the services container.
        services.AddDefaultIdentity<ApplicationIdentityDbContext, ApplicationUser, IdentityRole>(Configuration,
            o => {
                o.Password.RequireDigit = false;
                o.Password.RequireLowercase = false;
                o.Password.RequireUppercase = false;
                o.Password.RequireNonLetterOrDigit = false;
                o.Password.RequiredLength = 7;
            });
    }
}

Update 2:

上述情况在beta1版本的框架中是正确的,在最新的rc1beta5版本中,它略微更改为:

services.AddIdentity<ApplicationUser, IdentityRole>(o => {
    // configure identity options
    o.Password.RequireDigit = false;
    o.Password.RequireLowercase = false;
    o.Password.RequireUppercase = false;
    o.Password.RequireNonAlphanumeric = false;
    o.Password.RequiredLength = 6;
})
.AddEntityFrameworkStores<ApplicationIdentityDbContext>()
.AddDefaultTokenProviders();

Asp.net相关问答推荐

如何从 dll 文件中提取类的源代码?

VS2012 中无法识别的标签前缀或设备过滤器asp

如何异步渲染局部视图

使用实体框架从存储过程中获取数据

控制器 SessionStateBehavior 是只读的,我可以更新会话变量

从 IIS 7/8 中的静态内容中删除服务器标头

返回 IHttpActionResult vs IEnumerable vs IQueryable

如何在新实现的接口或基类之间做出决定?

如何验证文件上传的文件类型?

获取页面上特定类型的所有 Web 控件

Owin.IAppBuilder不包含MapSignalR的定义

如何在 ASP.NET 中通过 LAN 访问您的网站

模型是否包含字段而不将其添加到数据库中?

global.asax 中的 Application_Error 未捕获 WebAPI 中的错误

如何进入 IIS 管理器?

LinkBut​​ton 向 OnClick 后面的代码发送值

System.Threading.Tasks - 限制并发任务的数量

DateTime.Parse 和 Convert.ToDateTime 之间有什么区别?

如何使用 WebAPI 处理图像

使用 FormsAuthentication.SetAuthCookie 存储更多信息