身份名称不显示

Identity name does not display

我正在使用身份服务器 4 构建一个 aspnet.core mvc 项目。当我这样做时,我认为:

@User.Identity.Name

我没有得到任何显示,但是当我这样做时:

@User.Claims.FirstOrDefault(x => x.Type.ToLower() == "name").Value

我得到了想要的结果。我目前正在学习 Identity Server 4,所以我只是想知道有什么区别,以及我是否缺少一些逻辑。

ClaimsIdentity 不会自动知道您声明的名称类型。您需要在配置中设置 NameClaimType 属性,例如在 OIDC 中间件上 TokenValidationParamters

与角色相同: https://leastprivilege.com/2016/08/21/why-does-my-authorize-attribute-not-work/