【问题标题】:Asp.Net Identity Custom User Roles (querying)Asp.Net Identity 自定义用户角色(查询)
【发布时间】:2015-07-21 19:48:41
【问题描述】:

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

  1. 用户 A 具有“管理员”角色(未删除)
  2. 然后我添加“超级管理员”角色,然后删除“管理员”
  3. 如果我随后访问我的 IdentityUser 版本(具有“角色”ICollection - 自定义类型),我仍然会看到 2 个角色(1 个已删除,1 个未删除)

我想要发生的事情是在登录时(主要使用覆盖各个部分的默认函数),当 EF 检索它应该知道排除任何标记为已删除的行的数据时,但是我一直无法找到任何方法这样做。因为所有样板代码都被锁定,我无法轻易看到正在发生的事情或找到任何合乎逻辑的地方来覆盖此功能。

有人可以帮忙吗?

【问题讨论】:

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


    【解决方案1】:

    您可以在登录后扫描角色并使用类似以下的代码将其删除:

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

    【讨论】:

      猜你喜欢
      • 2013-12-26
      • 2016-04-12
      • 2017-02-17
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 2015-05-19
      • 2020-09-20
      • 1970-01-01
      相关资源
      最近更新 更多