1. ホーム
  2. c#

ASP.NET 5 MVC 6(vNext)でIdentityのパスワードルールを定義するにはどうすればよいですか。

2023-09-22 15:11:31

質問

ASP.NET 5で提供されるデフォルトのIdentityプロバイダは、デフォルトで非常に厳しいパスワード規則を持ち、小文字、大文字、非英数字、および数字が必要です。プロバイダーのパスワード要件を変更する方法を探しています。

以前の ASP.NET 4 では、プロバイダーは Web.config XML ファイルを介して、次のように設定できました。 が以前回答した . しかし、ASP.NET 5 では、新しいコードベースの構成パターンを使用しており、ID をどのように構成すればよいのかが不明です。

アプリケーションのパスワード要件を変更するにはどうすればよいですか。

どのように解決するのですか?

それは、AddDefaultIdentity に、それが提供する 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;
            });
    }
}

アップデート2です。

上記はフレームワークのβ1版ではそうでしたが、最新の rc1 beta5 では若干変更されています。

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();