ASP.Net Identity - 无法使用密码登录

时间:2017-04-04 15:01:23

标签: c# asp.net asp.net-identity asp.net-membership membership

ASP.Net Identity存在一些问题。我通过以下方式创建用户:

 var manager = new UserManager<IdentityUser>(userStore);

                manager.UserValidator = new UserValidator<IdentityUser>(manager)
                {
                    AllowOnlyAlphanumericUserNames = false
                };

                manager.PasswordValidator = new PasswordValidator
                {
                    RequiredLength = 6,
                    RequireDigit = true,
                    RequireLowercase = true,
                    RequireUppercase = true,
                };

                 var user = new IdentityUser() { UserName = email.Text, Email = email.Text };                    
                 IdentityResult result = manager.Create(user, Password1.Text);

然后将用户添加到数据库中。当我尝试使用此用户登录时,即使密码与用于创建帐户的密码相同,也始终返回“密码不正确”。

我正在使用以下方式登录:

var userStore = new UserStore<IdentityUser>();
var userManager = new UserManager<IdentityUser>(userStore);


        userManager.UserValidator = new UserValidator<IdentityUser>(userManager)
        {
            AllowOnlyAlphanumericUserNames = false
        };

        var user = userManager.Find(email.Text, Password.Text);

        if (user != null)

使用SQL事件探查器我可以看到它正确查找用户,当我在SSMS中运行SQL时,我可以看到该行返回正常。

我不确定当数据库返回的实际记录数是1时,userManager.Find为什么返回null?

1 个答案:

答案 0 :(得分:1)

使用SignInManager

SignInManager<IdentityUser> _signInManager; // Inject 

var result = await _signInManager.PasswordSignInAsync(email.Text, Password.Text, true, lockoutOnFailure: true);