检索用户是ASP.Net Core API成员的所有角色(组)

时间:2019-02-13 11:45:54

标签: asp.net asp.net-core windows-authentication asp.net-core-webapi

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

这是我在本地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的所有角色的列表?

1 个答案:

答案 0 :(得分:0)

最后我离得很近,如果有人需要它很简单。在第一个示例中,将其替换:

WindowsIdentity user = WindowsIdentity.GetCurrent();

与那个人在一起:

var user = User.Identity as WindowsIdentity;