使用identityserver4的ASP.Net Core MVC身份认证

 2023-02-15    290  

问题描述

我有几个问题.我有一个带有sidentityServer4和ef的ASP.NET核心应用程序的设置.很好.现在我想知道我必须在数据库中存储项目的方式.

我有七个用于身份数据库的表:

使用identityserver4的ASP.Net Core MVC身份认证

AspNetUSerRoleClaims - claims for roles (which roles has access to what)
AspNetRoles - roles of the user
AspNetUserClaims - claims of the user like firstname, country
AspNetUserLogins - how to use this table?
AspNetUserRoles - roles for users
AspNetUsers - user stored here
AspNetUserTokens - how to use this table

现在,我在数据库中注册了一个用户和一些角色,并将连接设置为Aspnetuserroles(哪个角色具有用户).
现在,我想通过注册,例如country,fived_name,family_name向用户添加更多信息.但是我必须在哪里存储它们.仅在Aspnetuserclaps中,或者我应该将信息存储在Aspnetuser表中(通过Applicationuser和Aspnetuser表中的额外列)?

以及如何将项目存储在aspnetlogin和aspnettoken表中,还是这是由身份服务器自动完成的?

预先感谢您的回答

推荐答案

我也有类似的问题,并发布了相关文章.

我可以说的是…

  1. ASPNET*表是为正常ASPNET身份身份验证创建的(即,如果您不使用其他身份验证机制或自定义用户商店)
  2. 如果要在Aspnetusers表中添加列,请扩展IdentityUser类. (例如,公共类MyApplicationuser:IdentityUser),然后添加您的自定义属性(例如FirstName).这本质上改变了模型.为了确保EF将模型更改为DB表,您需要使用新的MyApplicationuser类扩展IdentityDbContext类.
  3. 如果您希望将用户(例如Hair_color)添加到aspnetuserclaims表中,则需要调用usermanager.addclaimasync().您可以在注册过程或登录过程中使用来自表单的数据或从外部身份验证提供商(例如Google,Facebook,Twitter等)收到的索赔中执行此操作.
  4. 通常,如果您使用的是IdentityServer,则ASPNETUSERTOKENS表不被用作IDS的主要责任是发行和验证令牌(ID_TOKENS,ACCESS_TOKENS等)

我正在尝试弄清楚是为实体(即aspnetusers)添加其他用户信息的最佳实践还是在Aspnetuserclaim中的主张中添加它们.

以上所述是小编给大家介绍的使用identityserver4的ASP.Net Core MVC身份认证,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/33749.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。