AspNetUserLogins表标识

Bry*_*yan 28 c# asp.net-mvc entity-framework asp.net-identity

什么是AspNetUserLogins?是否存储用户的登录信息?如何用该数据更新此表?

Pre*_*ngh 48

什么是AspNetUserLogins? 在Asp.net Identity中,Identity系统使用该AspNetUserLogins表来保存有关第三方/外部登录的信息,例如通过Google,Facebook,Twitter等登录您网站的用户.该AspNetUsers表是存储用户信息的主表,与AspNetUserLoginsvia 相关联UserId -> AspNetUsers.Id.

例如,如果用户通过Facebook登录到您的站点,那么这LoginProvider是提供登录的服务的名称,因此在这种情况下为" Facebook ",这ProviderKey是与Facebook上的用户相关联的唯一Facebook密钥.

此表由Asp.net外部身份验证提供程序使用.

是否存储用户的登录信息? 不,不是真的,如上所述使用它

如何用该数据更新此表? 您不更新此表中的数据,通常是当用户通过外部提供程序登录时,在用户通过身份验证后,提供程序返回a ClaimsIdentity,其中有用户声明,其中一个是外部用户的唯一ID提供程序,在此表中自动更新.

在这里阅读更多关于外部供应商

  • 如果您确实想要手动向表中添加数据,可以使用:`userManager.AddLoginAsync(user.Id,new Microsoft.AspNet.Identity.UserLoginInfo("Facebook",id))`.如果您使用Facebook Javascript API通过Facebook登录按钮登录并且需要将FB用户ID"id"与ASPNet Identity`user.Id`中的用户ID相关联(默认为guid),则需要这样做 (8认同)
  • 我真的很想要一种方法,能够为一个用户提供来自不同提供商的多个用户登录,以便他们可以选择自己喜欢的方式,包括本地密码,只要一切都返回到唯一驻留在其中的电子邮件地址用户。这似乎根本不是一个支持或讨论的场景。确认后,脚手架页面将投诉该用户已存在。 (2认同)