使用角色生成标识用户(从Web API到MVC应用程序)

时间:2016-06-22 23:25:25

标签: c# asp.net-mvc asp.net-web-api authorization asp.net-identity

目前正在开发一些应用程序(MVC和Web API),我的MVC应用程序将请求发送到API以进行身份​​验证和“登录”。我已经开始工作了,所以我的所有MVC应用程序都必须存储来自Web API的持有者令牌,并在需要发出数据请求时随时附加它。

在程序的这一点上,我们正在寻求开始使​​用授权和一些安全修整来限制哪些用户可以向API发出某些请求以及哪些用户能够看到MVC应用程序上的某些页面。为了在两端执行此操作,我需要从我的API获取角色并模拟MVC端的Identity用户,因为他们在技术上已经登录。我现在的问题可能很简单,但我无法想象在生成身份用户时如何声明角色。现在我只需要一个我们可以显式声明的测试用例,然后我们可以在我们开始从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;
        }

1 个答案:

答案 0 :(得分:1)

Roles中的IdentityUser属性有一个私有的设置器(请参阅codeplex source code)。 <{1}}的构造函数总是创建一个空的角色列表,因此它不会为空。

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

IdentityUser