私は、パスワードのバリデータは何が必要だと思いますが、あなたが求めてきました以来ません -
カスタムパスワードバリ(ない私のコードは、以下の記事へのリンク)の例:
public class SameCharacterPasswordValidator<TUser>: IPasswordValidator<TUser>
where TUser : class
{
public Task<IdentityResult> ValidateAsync(UserManager<TUser> manager,
TUser user,
string password)
{
return Task.FromResult(password.Distinct().Count() == 1 ?
IdentityResult.Failed(new IdentityError
{
Code = "SameChar",
Description = "Passwords cannot be all the same character."
}) :
IdentityResult.Success);
}
}
あなたのカスタムバリデータはConfigureServices
方法
services.AddIdentity<ApplicationUser, IdentityRole>(options =>
{
// Basic built in validations
options.Password.RequireDigit = true;
options.Password.RequireLowercase = true;
options.Password.RequireNonLetterOrDigit = true;
options.Password.RequireUppercase = true;
options.Password.RequiredLength = 6;
})
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders()
// Your custom validator here
.AddPasswordValidator<SameCharacterPasswordValidator<ApplicationUser>>();
以内に適用することができますここではASP.NETのアイデンティティのパスワードのバリデータについての良い記事です: https://elanderson.net/2016/03/asp-net-core-password-options-and-custom-validators/
パスワードバリデータは、パスワードが(正規表現のような)形式であることを確認するためのものです。したがって、パスワードの有効期限はそれとは関係ありません。これはパスワードのメタデータですが、パスワードの形式とは関係ありません。
この場合、AspNetUsers
テーブルにフィールドを追加できます(IdentityUser
(おそらくApplicationUser
と呼ばれる)から継承しているクラスをPasswordChangedAt
の日付フィールドに拡張することで可能になります。
その後、あなたがその検証のために自分自身を確認する必要がありますに
PS:それはそのパスワードの強度やユーザストアが実際にIdentityServerとは何の関係もないとしなければならない何かを実現することが重要です IdentityServerがあなたのSTSとして機能します(。セキュリティトークンサービス)
自分自身で実現するまでには時間がかかりました。私はそれがあなたには明らかかもしれないが、言及する価値があると思う。
ご協力いただきありがとうございます。 私はあなたが正しいと思う、私はおそらく、パスワード検証を実行する代わりにAspNetUsersテーブルを拡張する必要があります。 IdentityServerの概念を完全に理解していなかったので、IdentityServerについての理解を深めていただきありがとうございます。もう一度ありがとう、私はあなたのすべての助けに感謝します。 – CodingRiot
確かに、私はこれが助けて嬉しいです:) – DotnetProg