生成具有角色的身份用户(从 Web API 到 MVC 应用程序)

Generating an Identity User with Roles (From Web API to MVC Application)

目前正在开发几个应用程序(MVC 和 Web API),我的 MVC 应用程序会将请求发送到 API 以获得身份验证和 "login"。我让它正常工作,所以我的 MVC 应用程序所要做的就是存储来自 Web 的不记名令牌 API 并在需要发出数据请求时附加它。

在程序的这一点上,我们希望开始使用授权和一些安全修整来限制哪些用户可以向 API 发出某些请求以及哪些用户能够看到 MVC 上的某些页面应用。为了在两端都做到这一点,我需要从我的 API 获取角色并在 MVC 端模拟身份用户,因为他们在技术上已经登录。我现在的问题可能有点简单,但我当我生成身份用户时,无法弄清楚如何声明角色。现在我只需要一个我们可以显式声明的测试用例,然后一旦我们开始从 API.

传递角色,我就可以获取它

知道如何使用 Roles 制作一个功能示例吗?

private IdentityUser GenerateIdentityUser(string IdNum, string userN)
        {
            var newUser = new IdentityUser
            {
                Id = IdNum,
                UserName = userN,
                // Roles = 
                SecurityStamp = DateTime.Now.Ticks.ToString()
            };

            return newUser;
        }

Roles属性中的IdentityUser有一个私有的setter(见codeplex source code)。 IdentityUser 的构造函数总是创建一个空的角色列表,因此它不会为空。

要设置角色,您需要在初始化 newUser 对象后添加以下行:

newUser.Roles.Add(new IdentityUserRole {UserId = newUser.Id, RoleId = "your role id"});