ASP.Net 身份 - 无法使用密码登录
ASP.Net Identity - cannot login with password
ASP.Net 身份存在一些问题。我正在通过以下方式创建用户:
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);
然后将用户添加到数据库中。然后,当我尝试使用该用户登录时,它总是 returns "Password incorrect" 即使密码与创建帐户时使用的密码相同。
我正在使用以下方式登录:
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 Profiler 我可以看到它正确地查找了用户,当我 运行 SSMS 中的 SQL 我可以看到该行返回正常。
我不确定为什么当从数据库返回的实际记录数为 1 时 userManager.Find 返回空值?
使用SignInManager
SignInManager<IdentityUser> _signInManager; // Inject
var result = await _signInManager.PasswordSignInAsync(email.Text, Password.Text, true, lockoutOnFailure: true);
ASP.Net 身份存在一些问题。我正在通过以下方式创建用户:
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);
然后将用户添加到数据库中。然后,当我尝试使用该用户登录时,它总是 returns "Password incorrect" 即使密码与创建帐户时使用的密码相同。
我正在使用以下方式登录:
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 Profiler 我可以看到它正确地查找了用户,当我 运行 SSMS 中的 SQL 我可以看到该行返回正常。
我不确定为什么当从数据库返回的实际记录数为 1 时 userManager.Find 返回空值?
使用SignInManager
SignInManager<IdentityUser> _signInManager; // Inject
var result = await _signInManager.PasswordSignInAsync(email.Text, Password.Text, true, lockoutOnFailure: true);