首页 > 解决方案 > IdentityServer4 Skoruba 新字段参数丢失

问题描述

我正在为我的项目使用https://github.com/skoruba/IdentityServer4.Admin存储库。

我为一些自定义字段(CreateDate)创建了 ViewModel 类(公共类 CreateDateViewModel:IdentityUser),并从 IdentityUser 继承了它。迁移(Add-Migration "MigrationName" -Context IdentityServerConfigurationDbContext -o Migrations/IdentityServerConfiguration)并更新数据库后,该字段出现在数据库中,但Account控制器仍然无法访问user.CreateDate属性(var user = await _userManager .GetUserAsync(model.UserName); user.CreateDate 丢失)

你能建议做什么吗?

在此处输入图像描述

标签: inheritanceidentityserver4

解决方案


一段时间后我得到了答案,由于这里没有评论,我决定自己回答。如果有人面临同样的问题,请知道最好将此信息放入声明中,而不是在 DB 中创建新列。因此,您需要修改和添加您自己的用户声明的 OpenIDProfile.cs、AddressClaimConstants 和 OpenidClaimsHelpers.cs 文件。然后您需要调用方法 updateuserclaims - 同步现有的和新的声明,然后将它们存储到 UserClaims 中。

在您的控制器中的任何地方,您都可以获得以下声明:

在此处输入图像描述

你可以在这里找到更多https://github.com/skoruba/IdentityServer4.Admin/issues/308


推荐阅读