升级到 .NET 8 后无法从身份获取电子邮件声明

问题描述 投票:0回答:1

我将项目从 .NET 7 升级到 .NET 8。我知道声明存在重大变化。

在 .NET 7 中我曾经这样做过:

return auth?.User?.Claims?.SingleOrDefault(x => x.Type == "email")?.Value;

在.NET 8中,看起来我需要做:

return auth?.User?.Claims?.SingleOrDefault(x => x.Type == @"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress")?.Value;

有更好的方法来检索电子邮件索赔吗?

c# jwt openid .net-8.0
1个回答
4
投票

System.Security.Claims
命名空间包含一堆可以用于此目的的常量。例如:

using System.Security.Claims;

...

return auth?.User?.Claims?
    .SingleOrDefault(x => x.Type == ClaimTypes.Email)?.Value;
© www.soinside.com 2019 - 2024. All rights reserved.