我正在使用 ASP .NET MVC 内置模板进行身份验证。对于一些自定义角色,我在另一个页面上复制了新注册用户代码并通过以下方式存储在数据库中。
public void adduser(AdduserModel role){
ApplicationUser appUser = new ApplicationUser() { Email = role.Email, PasswordHash = role.Password, UserName = role.Email, EmailConfirmed = true };
var manager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
var response = manager.Create(appUser);
}
在模板 AccountController 中看起来如下
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
var user = await UserManager.FindByNameAsync(model.Email);
// Session["UserName"] = model.Email;
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
}
两者都将密码和电子邮件等存储在密码中,但 myCode 以纯文本格式存储,模板代码以加密格式存储密码。
当我尝试登录时,模板注册用户正确执行并登录,但我的代码给了我以下错误。
输入不是有效的 Base-64 字符串,因为它包含非 base 64 字符、两个以上的填充字符或填充字符中的非空白字符。
我该如何解决这个问题?