1、表 AspNetUserTokens 有四个字段 UserId(关联用户表) 、LoginProvider 、Name、Value 。
用于外部验证的 token 存储,被方法 SignInManager.UpdateExternalAuthenticationTokensAsync 填写。
内部验证的 token 默认存储在内存(memory)中 , 如果想存储在数据库中, 你必须创建自己的表及相关存储的逻辑。
参考《https://stackoverflow.com/questions/51200884/populating-aspnetuserlogins-and-aspnetusertokens》
2、表 AspNetUserLogins 有四个字段 LoginProvider、 ProviderKey、ProviderDisplayName, UserId(关联用户表)
保留 第3方/外部 login 的信息,如 Google, Facebook, Twitter 等。此表被外部 authentication provider 所用。
通用在一个 user 经 external provider登录(login )后,此 provider 返回一个 ClaimsIdentity, 其中包括了用户 claims,含有有一个 唯一用户id 在 external provider 中, 并自动更新此表,不用自己写代码。
如果你一定要手动增加表中数据,你可这样做:参考:《https://stackoverflow.com/questions/35155447/the-aspnetuserlogins-table-identity》
userManager.AddLoginAsync(user.Id, new Microsoft.AspNet.Identity.UserLoginInfo("Facebook", id))
上述是通过:Facebook login,必须将 Facebook 用户 id 与 ASPNet Identity 的 user.Id 关联起来。
--¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
3、AspNetUserClaims 表 有四个字段: Id,UserIdClaimValue,
此表对应 类 IdentityRoleClaim。wait UserManager.AddClaimAsync(user, customClaim);
在用户登录验证通过后,是否 自动获取 本表中 Claim ? 等验证! ===== 好像是登录后,自动获取表中的 ClaimsIdentity中。
问题: 是扩展 AspNetUser 的字段,或者 通过 AspNetUserClaims 扩展用户信息,取决于你的需要!
public class AspNetUserTokens : IdentityUserToken<Guid>{ /*your code here*/ }
public class AspNetRoleClaims : IdentityRoleClaim<Guid>{ /*your code here*/ }
public class AspNetUserLogins : IdentityUserLogin<Guid>{ /*your code here*/ }
public class AspNetUserRoles : IdentityUserRole<Guid>{ /*your code here*/ }
public class AspNetUserClaims : IdentityUserClaim<Guid>{ /*your code here*/ }
4、IdentityUserContext 源代码
http://blog.baibaota.com/918.html》