当前正在开发几个应用程序(MVC和Web API),我的MVC应用程序将将请求发送到API以进行身份验证并"登录"。我已经工作了,因此我所有的MVC应用程序要做的就是存储Web API的携带者令牌,并随时随地将其附加到要求数据请求时。
在程序中的这一点上,我们希望开始使用授权和一些安全修剪,以限制用户可以向API提出某些请求,以及哪些用户可以在MVC应用程序上查看某些页面。为了在两端执行此操作,我需要从我的API中扮演角色,并在MVC方面模仿身份用户,因为他们已经登录了。我现在的问题可能很简单,但我不知道当我生成身份用户时,如何声明角色。现在,我只需要一个可以明确声明的测试用例,然后一旦我们开始从API传递角色后,我就可以抓住它。
有什么想法如何用角色从中做一个功能的示例?
private IdentityUser GenerateIdentityUser(string IdNum, string userN)
{
var newUser = new IdentityUser
{
Id = IdNum,
UserName = userN,
// Roles =
SecurityStamp = DateTime.Now.Ticks.ToString()
};
return newUser;
}
IdentityUser
中的Roles
属性具有私有设置器(请参阅CodePlex源代码)。IdentityUser
的构造函数总是会创建一个空的角色列表,以免它为null。
要在初始化newuser对象之后,要添加以下行:
:newUser.Roles.Add(new IdentityUserRole {UserId = newUser.Id, RoleId = "your role id"});