将自定义角色添加到用户ASP.NET标识

时间:2014-06-18 14:03:48

标签: asp.net entity-framework asp.net-identity

问题背景

在我的Web应用程序中,我一直在使用ASP.NET Identity。我通过从IdentityUser继承User类来创建自定义用户配置文件。为了能够将Roles与例如角色组连接,我还在我的数据库中创建了一个继承自IdentityRole类的自定义角色类。

我的数据库模型如下所示: Part of databasemodel

问题不在于创建用户。 这只是起作用:

var userManager = new UserManager<User>(new UserStore<User>(_context));
var result = userManager.Create(user, password);

与创建角色相同。

var rm = new RoleManager<Role>(new RoleStore<Role>(_context));
var result = rm.Create(new Role(name));

问题

但是当我尝试将角色附加到用户时(使用以下代码

var um = new UserManager<User>(new UserStore<User>(_context));
var result = um.AddToRole(userId, roleName);

我得到的错误基本上是“实体类型IdentityRole不是当前上下文模型的一部分。

这是真的,顺便说一下。但是我怎样才能使我的Role实体被视为IdentityRole实体,它基本上是或者必须是。

请在此处查看完整的堆栈跟踪:http://pastebin.com/sEPv5LiT

提前致谢!

1 个答案:

答案 0 :(得分:0)

据我所知,您希望为用户定义自定义角色,我更喜欢在您的解决方案中添加库项目,并通过此管理所有成员资格和角色。

Custom Asp.Net Membership

如果你愿意,我会为你制作图书馆项目