IdentityServer4 Skoruba 新字段参数丢失
IdentityServer4 Skoruba new field parameter is missing
我正在为我的项目使用 https://github.com/skoruba/IdentityServer4.Admin 存储库。
我为一些自定义字段 (CreateDate) 创建了 ViewModel class (public class CreateDateViewModel : IdentityUser) 并从 IdentityUser 继承了它。迁移(Add-Migration "MigrationName" -Context IdentityServerConfigurationDbContext -o Migrations/IdentityServerConfiguration) 更新数据库后,该字段出现在数据库中,但Account controller 仍然无法访问 user.CreateDate 属性(var user = await _userManager.GetUserAsync(model.UserName);缺少 user.CreateDate)
你能建议怎么做吗?
一段时间后我得到了答案,由于这里没有评论,我决定自己回答。如果有人遇到同样的问题,请知道最好将此信息放入声明中而不是在数据库中创建新列。因此,您需要修改 OpenIDProfile.cs、AddressClaimConstants 和 OpenidClaimsHelpers.cs 文件并添加您自己的用户声明。然后您需要调用方法 updateuserclaims - 同步现有的和新的声明,然后将它们存储到 UserClaims 中。
在你的控制器中的任何地方,你都可以获得这些声明:
您可以在此处找到更多信息https://github.com/skoruba/IdentityServer4.Admin/issues/308
我正在为我的项目使用 https://github.com/skoruba/IdentityServer4.Admin 存储库。
我为一些自定义字段 (CreateDate) 创建了 ViewModel class (public class CreateDateViewModel : IdentityUser) 并从 IdentityUser 继承了它。迁移(Add-Migration "MigrationName" -Context IdentityServerConfigurationDbContext -o Migrations/IdentityServerConfiguration) 更新数据库后,该字段出现在数据库中,但Account controller 仍然无法访问 user.CreateDate 属性(var user = await _userManager.GetUserAsync(model.UserName);缺少 user.CreateDate)
你能建议怎么做吗?
一段时间后我得到了答案,由于这里没有评论,我决定自己回答。如果有人遇到同样的问题,请知道最好将此信息放入声明中而不是在数据库中创建新列。因此,您需要修改 OpenIDProfile.cs、AddressClaimConstants 和 OpenidClaimsHelpers.cs 文件并添加您自己的用户声明。然后您需要调用方法 updateuserclaims - 同步现有的和新的声明,然后将它们存储到 UserClaims 中。
在你的控制器中的任何地方,你都可以获得这些声明:
您可以在此处找到更多信息https://github.com/skoruba/IdentityServer4.Admin/issues/308