首页 > 解决方案 > 如何将 MapJsonSubKey 与 json 数组一起使用

问题描述

我在 MVC 应用程序中使用 oauth2 流。我可以被重定向到提供程序以挑战用户和密码,并且一旦我进行 API 调用,我可以获得用于 API 调用的访问令牌我可以检索信息,但响应是一个包含数组的 JSON 我怎么能使用 MapJsonSubKey 从以下 JSON 映射电子邮件?

{
    "ErrorList": null,
    "Status": 1,
    "UserDetailList": [
        {
            "Email": "pippo.pluto@xxx.com",
            "FirstName": "pippo",
            "LastName": "pluto",
            "PersonId": "pippo.pluto@xxx.com",
            "ProfilePhoto": 1,
            "ProfilePhotoPath": null,
            "Status": 100,
            "Title": null,
            "UpdatedDate": "/Date(1561120073327+0000)/",
            "UserGUID": "8f643f10-0559-4e34-972d-52f41a4b9fcc",
            "UserId": 20,
            "UserName": "ca9ba551-9347-45b3-a926-c9bf361252e0"
        }
    ]
}

如果我使用此代码

 options.ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier,"Id");
 options.ClaimActions.MapJsonKey(ClaimTypes.Name, "Name");

 options.ClaimActions.MapJsonKey("urn:infor:status", "Status");
 options.ClaimActions.MapJsonSubKey("urn:infor:uname", "UserDetailList[]", "Email");

在cshtml中,我用这个

 @User.FindFirst(c => c.Type == "urn:infor:uname")?.Value

我在页面中看不到任何值

标签: asp.net-mvc

解决方案


推荐阅读