在 ASP.Net 核心 API 中检索用户所属的所有角色(组)

Retrieve all the roles (groups) a user is a member of in ASP.Net Core API

我正在尝试检索用户所在的所有角色。

这个在我的本地 IIS 上工作正常,因为我是登录的那个,但是当我把 API 放到服务器时,它检索的不是我的角色。

    [Authorize(Roles = "Admin")]
    [HttpGet]
    public IActionResult Get()
    {
        WindowsIdentity user = WindowsIdentity.GetCurrent();

        var userRoles = from id in user.Groups
                         select id.Translate(typeof(NTAccount)).Value;

        return Ok(userRoles);
    }

如果我将 WindowsIdentity 更改为 IIdentity,我会在本地和服务器上获得正确的用户,但我无法访问角色。

IIdentity user = User.Identity;
return Ok(user);

如何检索访问 API 的用户所在的所有角色列表?

结果我很亲近,谁需要就简单了。在第一个例子中替换这个:

WindowsIdentity user = WindowsIdentity.GetCurrent();

那个:

var user = User.Identity as WindowsIdentity;