return 使用 GetUserInfo 方法的角色 asp.net 使用 EF 的 WebAPI2.0

return Roles with GetUserInfo method asp.net WebAPI2.0 with EF

我已经按照此处的说明实施了 Rolmanager: http://johnatten.com/2014/10/26/asp-net-web-api-and-identity-2-0-customizing-identity-models-and-implementing-role-based-authorization/

现在我需要 API 到 return 网络角色 API 到 "client"(这是另一个 ASP.net 网站充当前端)所以我可以看到我应该对非管理员用户隐藏哪些视图。

我可以将角色添加到 Accounts 控制器中的 GetUserInfo 方法吗,或者我应该以不同的方式处理它,我应该如何实现它?

我最终在 AccountController 中这样实现了它:

public UserInfoViewModel GetUserInfo()
    {
        ExternalLoginData externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity);
        var rols = ((ClaimsIdentity) User.Identity).Claims
            .Where(c => c.Type == ClaimTypes.Role)
            .Select(c => c.Value);

        var UIM = new UserInfoViewModel
        {
            Email = User.Identity.GetUserName(),
            HasRegistered = externalLogin == null,
            LoginProvider = externalLogin != null ? externalLogin.LoginProvider : null,
            roles = rols
        };
        return UIM;
    }

然后将其添加到 UserInfoViewModel:

public IEnumerable<string> roles;