相关疑难解决方法(0)

ASP.Net Identity和IdentityServer4声明

我正在使用IdentityServer4作为OIDC提供程序和ASP.NET Core 2.0。

我已经浏览了几篇文章,以确保IdentityServer发出的声明最终出现在ClaimsPrincipal中(即Auth Cookie),并设法通过ClaimsAction过滤来实现这一点。

但是,我的问题是...当使用ASP.NET Identity(和EF后备存储)运行IdentityServer时,ASP.NET Identity属性如何映射到IDS4返回的声明。默认情况下,IDS4返回诸如...的声明。

  • “ sub”:来自IdentityUser.Id
  • “名称”:来自IdentityUser.UserName
  • “ preferred_username”:来自IdentityUser.UserName
  • “电子邮件”:来自IdentityUser.Email
  • “ email_verified”:来自IdentityUser.EmailConfirmed

我问这个的原因是我想作图

  • “ given_name”:来自IdentityUser.FirstName(扩展属性)
  • “ family_name”:来自IdentityUser.LastName(扩展属性)

因为在请求PROFILE范围时,默认情况下IDS4似乎不执行此操作。

另外,我想问一下存储用户属性的最佳实践。使用ASP.NET Identity DB时,将创建两个表...

  • AspNetUsers
  • AspNetUserClaims

因此,最佳实践是将其他用户属性添加为...

  1. IdentityUser上的属性(作为新字段添加到AspNetUsers中)或...
  2. AspNetUserClaims中的其他声明(可以在注册或登录时使用UserManager.AddClaimAsync()添加这些声明)

identityserver4

5
推荐指数
1
解决办法
357
查看次数

将ASP.NET标识用户链接到用户详细信息表

我使用了默认的MVC模板和个人授权.运行应用程序后,它会自动创建所需的标识表.我已成功注册了几个用户,所有用户都存储在AspNetUser表中.

现在我想要的是登录用户可以添加更多信息,如名字,姓氏,地址等.为此,我创建了另一个表,PersonalInformation其中包含用于存储此信息的列.

我也在中创建了一个EditProfileAction ManageController.

现在,我如何将ASP.NET Identity用户链接到此表?我应该将Id列添加为外键AspNetUser吗?另外,如何将编辑后的信息与登录的用户ID一起成功存储在"PersonalInformation"表中?

c# asp.net-mvc asp.net-mvc-4

4
推荐指数
1
解决办法
1万
查看次数

Asp Net Identity - 声明与自定义 IdentityUser

我对自定义用户配置文件以在应用程序中实现自定义逻辑的最佳方法感到有点困惑。

假设您必须使用此类属性来分析用户:

  • 等级
  • 可以处理
  • 可以离线工作
  • 可以发送电子邮件
  • 可以查看全名

我必须在哪里实现这种属性?我是否必须自定义 IdentityUser(使用 ApplicationUser)还是必须创建自定义声明?

c# attributes claims asp.net-identity

4
推荐指数
1
解决办法
2211
查看次数