1
我使用UserManager.CheckPassword(...)
自定义IUser
实现时遇到问题。自定义IUser实现 - 验证密码
我正在使用.net与Owin的身份,创建了我自己的IUser
和IUserStore
的实现。
对于商店,我只使用可选的电子邮件和密码存储。
的IUser
实现是在这里看到,与基本字段:验证用户时,在登录时出现
public class RegisteredUser : IUser<string>
{
public RegisteredUser()
{
Id = Guid.NewGuid().ToString();
}
public string Id { get; }
public string UserName { get; set; }
public string PasswordHash { get; set; }
public string Email { get; set; }
public bool EmailConfirmed { get; set; }
}
问题 我无法使用SignInManager.PasswordSignIn(...)
为我的商店犯规实施LockoutStore。
相反,我用UserManager.CheckPassword(...)
,但这将引发出现FormatException,说:
输入不是一个有效的Base-64串...
UserSignInManager manager = HttpContext.GetOwinContext().Get<UserSignInManager>();
RegisteredUser user = manager.UserManager.FindByEmail(model.Email);
if (user != null && manager.UserManager.CheckPassword(user, model.Password))
{
manager.SignIn(user, model.RememberMe, model.RememberMe);
return RedirectToAction("UserProfile");
}
想着这个,我也不明白CheckPassword()
方法能够检查我的自定义实现的密码而不知道在哪里查找。
我在做什么错?
您可以在UserManager上发布更多数据吗? CheckPassword方法? –
这不是我自己的实现。我使用microsofts默认值,但用我自己的自定义UserStore实例化它。 –