我可以使用任何密码进行身份验证。电子邮件必须是有效的注册电子邮件,但pwd并不重要。其他一切都正常工作。
对从哪里开始解决这个问题有什么建议吗?我在网络搜索中没有发现任何类似的问题。
我的观点..。
我在账户管理员的行动..。
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(AccountLoginModel viewModel)
{
if (!ModelState.IsValid)
return View(viewModel);
var user = _manager.FindByEmail(viewModel.Email);
if (user != null)
{
await SignInAsync(user, viewModel.RememberMe);
string uid = user.Id;
return RedirectToLocal(viewModel.ReturnUrl);
}
ModelState.AddModelError("", "Invalid username or password.");
return View(viewModel);
}信号异步方法..。
private async Task SignInAsync(IdentityUser user, bool isPersistent)
{
// Clear any lingering authencation data
FormsAuthentication.SignOut();
// Create a claims based identity for the current user
var identity = await _manager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
// Write the authentication cookie
FormsAuthentication.SetAuthCookie(identity.Name, isPersistent);
}我确实创建了一个单独的MVC web项目来查看脚手架登录操作,这有点不同。SmartAdmin模板是自定义的,很难在不知道我正在影响的情况下开始更改。任何方向都是感激的。
发布于 2018-03-29 16:08:14
如果系统中的username为email,则应使用
var user = _manager.FindAsync(viewModel.Email, viewModel.Password);然后登录用户,如果它不是null的话。
如果username不是email,您应该首先获得user,然后检查密码
var user = _manager.FindByEmail(viewModel.Email);
bool isPasswordCorrect = await _manager.CheckPasswordAsync(user, viewModel.Password);https://stackoverflow.com/questions/49544588
复制相似问题