我将我的项目从 NET7 升级到 NET8。我知道声明有重大变化。
在NET7中我曾经这样做过:
return auth?.User?.Claims?.SingleOrDefault(x => x.Type == "email")?.Value;
在NET8中,看起来我需要做:
return auth?.User?.Claims?.SingleOrDefault(x => x.Type == @"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress")?.Value;
有更好的方法来检索电子邮件索赔吗?
System.Security.Claims
命名空间包含一堆可以用于此目的的常量。例如:
using System.Security.Claims;
...
return auth?.User?.Claims?
.SingleOrDefault(x => x.Type == ClaimTypes.Email)?.Value;