首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有密码的5登录

没有密码的5登录
EN

Stack Overflow用户
提问于 2018-09-21 13:12:28
回答 2查看 300关注 0票数 2

我使用5与处理登录等的帐户模板。我想作为一个没有密码的用户登录。我试过这个:

代码语言:javascript
复制
var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);

但是,我得到了"UserId未找到“的错误。

我用以下内容创建了用户:

代码语言:javascript
复制
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);

但我需要一个密码。

在没有密码的情况下,我怎么能被登录呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-21 14:27:16

您的对象ApplicationUser没有id,这就是您要获得此错误的原因。

试试这个:

代码语言:javascript
复制
var user = await _userManager.FindByNameAsync(model.Email);
await _signInManager.SignInAsync(user, isPersistent: false);

你也可以:

代码语言:javascript
复制
var user = await _userManager.FindByEmailAsync(model.Email);

希望这能有所帮助!

票数 2
EN

Stack Overflow用户

发布于 2018-09-21 14:26:40

经过一些尝试和错误。您需要让用户作为ApplicationUser拥有正确的数据,就像将其保存在数据库中一样。

要获得用户,您需要这样做:

代码语言:javascript
复制
ApplicationUser user = UserManager.FindByEmailAsync(model.Email).Result;

这需要传递给SignInAsync函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52444562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档