Asp.Net Identity自定义用户角色(查询)

时间:2015-05-11 10:32:38

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

我已经在Asp.Net Identity框架内成功创建了自定义用户和角色,但缺少的一个部分是对角色'角色的支持。用户内的集合。我添加了一个合乎逻辑的“删除”#39;在UserRole中标记并且我希望在EF从数据库中检索信息时包含它,但它所做的只是检索所有内容(这不是我想要的)。塞纳里奥:

  1. 用户A的角色为' admin' (未缺失的)
  2. 然后我添加了一个超级管理员的角色'然后删除' admin'
  3. 如果我然后访问我的IdentityUser版本(其中包含' Roles' ICollection - 自定义类型),我仍然会看到2个角色(1个已删除,1个未被删除)
  4. 我想要发生的是在登录时(主要使用默认函数并覆盖各个部分),当EF检索它应该知道的数据时,要排除任何标记为已删除的行,但是我无法找到任何方法。这样做。由于所有样板代码都被锁定,我无法轻易查看发生的情况或找到任何逻辑位置来覆盖此功能。

    任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以在登录后扫描角色,并使用与此类似的代码删除它们:

        var roles = UserManager.GetRoles(userId);
        foreach (var roleName in roles)
        {
            var role = RoleManager.FindByName(roleName);
            if (role.IsDeleted) UserManager.RemoveFromRole(userId, roleName);
        }