我正在使用IdentityServer4作为OIDC提供程序和ASP.NET Core 2.0。
我已经浏览了几篇文章,以确保IdentityServer发出的声明最终出现在ClaimsPrincipal中(即Auth Cookie),并设法通过ClaimsAction过滤来实现这一点。
但是,我的问题是...当使用ASP.NET Identity(和EF后备存储)运行IdentityServer时,ASP.NET Identity属性如何映射到IDS4返回的声明。默认情况下,IDS4返回诸如...的声明。
我问这个的原因是我想作图
因为在请求PROFILE范围时,默认情况下IDS4似乎不执行此操作。
另外,我想问一下存储用户属性的最佳实践。使用ASP.NET Identity DB时,将创建两个表...
因此,最佳实践是将其他用户属性添加为...
我使用了默认的MVC模板和个人授权.运行应用程序后,它会自动创建所需的标识表.我已成功注册了几个用户,所有用户都存储在AspNetUser表中.
现在我想要的是登录用户可以添加更多信息,如名字,姓氏,地址等.为此,我创建了另一个表,PersonalInformation其中包含用于存储此信息的列.
我也在中创建了一个EditProfileAction ManageController.
现在,我如何将ASP.NET Identity用户链接到此表?我应该将Id列添加为外键AspNetUser吗?另外,如何将编辑后的信息与登录的用户ID一起成功存储在"PersonalInformation"表中?
我对自定义用户配置文件以在应用程序中实现自定义逻辑的最佳方法感到有点困惑。
假设您必须使用此类属性来分析用户:
我必须在哪里实现这种属性?我是否必须自定义 IdentityUser(使用 ApplicationUser)还是必须创建自定义声明?