zoukankan      html  css  js  c++  java
  • Aspnet Core Identity 有关的数据库表、配置及扩展

    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,UserId(关联用户表)ClaimType, ClaimValue,  

         此表对应 类 IdentityRoleClaim可以通过 本方法增加 表中 Claim 记录:  wait UserManager.AddClaimAsync(user, customClaim);

       在用户登录验证通过后,是否 自动获取 本表中 Claim ? 等验证!  =====  好像是登录后,自动获取表中的 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、IdentityDbContextIdentityUserContext 源代码

       IdentityEntityFrameworkBuilderExtensions 有 IdentityBuilder AddEntityFrameworkStores<TContext>()扩展方法。

    5、ASPNET Core Identity 主要通过三个比较核心的类 UserManager、RoleManager、SigninManager进行管理(在Microsoft.AspNetCore.Identity程序集) 参考:《NET Core中的认证授权管理解析http://blog.baibaota.com/918.html》 

     

  • 相关阅读:
    IT零起点转FICO学习路线
    Consuming a Web Service in ABAP
    SAP月末结账步骤
    sap dialog Screen Sequences
    ABAP:区别CALL SCREEN/SET SCREEN/LEAVE TO SCREEN
    查询abap 程式应用到系统表table
    SAP压缩excel并发送mail案例
    ABAP PARAMETERS 参数
    DQL、DML、DDL、DCL 概念与区别
    OLE Excel 、Word 转换 pdf 文件
  • 原文地址:https://www.cnblogs.com/hopesun/p/12529875.html
Copyright © 2011-2022 走看看