ASP.NET身份自定义PasswordValidator检查用户名

Nik*_*ckx 5 c# asp.net asp.net-mvc asp.net-identity-2

我想添加一个检查,密码不包含ASP.NET Identity框架中的用户名.

Custom PasswordValidator的实现应该可以正常工作,但是如何访问用户名?

public class CustomPasswordValidator : PasswordValidator
{
    public override async Task<IdentityResult> ValidateAsync(string password)
    {
        var result = await base.ValidateAsync(password);

        //How to access username here

        return result;
    }
 }
Run Code Online (Sandbox Code Playgroud)

Ale*_*rt. 0

您可以查看Fluent Validation 库

它有一个非常适合您的场景的谓词验证器(必须)。所以你的验证规则将如下所示:

    RuleFor(model => model.Password)
        .Must((model, username) => !model.Password.Contains(username))
Run Code Online (Sandbox Code Playgroud)