我使用 Visual Studio MVC 5 和处理登录等的帐户模板。 我想以没有密码的用户身份登录。我试过这个:
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
但随后我收到“UserId not found.”错误。
我用这个创建了用户:
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
var result = await UserManager.CreateAsync(user, Guid.NewGuid().ToString());
if (result.Succeeded)
{
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
}
之后我登录,当我想再次登录时,我收到此错误。
编辑:我知道出了什么问题。
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
还创建一个新 ID。我认为这不是正确的登录方式。
正常的登录方式是使用 SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, ShouldLockout: false) ;
但是我需要密码。
没有密码如何登录?
最佳答案
您的对象 ApplicationUser 没有 id,这就是您收到此错误的原因。
试试这个:
var user = await _userManager.FindByNameAsync(model.Email);
await _signInManager.SignInAsync(user, isPersistent: false);
你也可以使用:
var user = await _userManager.FindByEmailAsync(model.Email);
希望这有帮助!
关于c# - Visual Studio MVC 5 无需密码登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52444562/