MSAL声明常量是否在某个包中可用



我已经将身份验证转移到MSAL,我想在客户端检查我的声明,例如,查看我在Azure B2C中的对象ID(从而为我的客户端提供身份(。

在服务器上,objectId声明似乎返回为:

{http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier:63fd3d89-26ff-4934-907c-5e6c9da07c45}

URI";http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"是一个已知的声明,可以使用声明访问。Name和我可以使用这样的语句从声明中提取objectId:

Guid userId = new(this.User.FindFirstValue(ClaimTypes.NameIdentifier));

但在客户端上,objectId声明是使用"oid"URI返回的,我不能在服务器上使用相同类型的预定义声明。

显然,我可以将这些定义为共享模块中的常量,但我不能是唯一一个试图从客户端解析声明的人。客户端上是否有MSAL的类似"ClaimTypes"?

我在搜索相同的东西,并找到了与oid索赔类型(http://schemas.microsoft.com/identity/claims/objectidentifier(匹配的ClaimConstants.ObjectId(请参见此处(。

Guid userId = new(this.User.FindFirstValue(ClaimConstants.ObjectId));

它是Microsoft.Identity.Web程序包的一部分。

最新更新