Asp.Net Identity发现用户不在角色中
发布时间:2020-12-16 07:29:35  所属栏目:asp.Net  来源:网络整理 
            导读:我需要使用Asp.Net Identity找到所有不包含某个角色的用户. 到目前为止,我有类似的东西,但它不起作用. (From role In context.RolesFrom userRoles In role.UsersJoin us In context.Users On us.Id Equals userRoles.UserIdWhere role.Name "SomeRole"Selec
                
                
                
            | 
                         
 我需要使用Asp.Net Identity找到所有不包含某个角色的用户. 
  
到目前为止,我有类似的东西,但它不起作用. (From role In context.Roles From userRoles In role.Users Join us In context.Users On us.Id Equals userRoles.UserId Where role.Name <> "SomeRole" Select us.UserName) 这给了我一个所有用户的列表,但它包括角色“SomeRole”的用户. 这是可行的SQL代码,但如果可能的话,我仍然会喜欢LINQ查询. select distinct A.UserName from AspNetUsers A
inner join AspNetUserRoles UR on UR.UserId = A.Id
inner join AspNetRoles R on R.Id = UR.RoleId
where not exists(
    select AspNetUserRoles UR1 on UR1.UserId = A.Id
    inner join AspNetRoles R1 on R1.Id = UR1.RoleId 
    where R1.Name = 'SomeRole') 
 嗯,我有一个有效的解决方案,但它不漂亮,我相信它可以写得更好. (From role In context.Roles
From userRole In role.Users
Join user In context.Users On us.Id Equals userRole.UserId
Where Not (
    From role1 In context.Roles
    From userRole1 In role1.Users
    Join user1 In context.Users On user1.Id Equals userRoles1.UserId
    Where role1.Name = "SomeRole"
    Select user1.Id).Contains(user.Id)
Select user.UserName).Distinct()
解决方法
 在c#中,您可以获得不属于某个角色的所有用户: 
  
  
  
        var role = context.Roles.SingleOrDefault(m => m.Name == "role"); var usersNotInRole = context.Users.Where(m => m.Roles.All(r => r.RoleId != role.Id)); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- asp.net-mvc – 同一页面上的ASP.NET MVC模型绑定相关实体
 - asp.net-mvc – 如何在ASP.NET Web API中获取IpAddress和Us
 - asp.net-mvc – 概念类型中的成员数量不匹配 – 但确实如此
 - asp.net-core – 在Windows上为不同平台构建coreclr应用程序
 - asp.net-mvc – 是否可以在Orchard CMS中使用剃刀布局并绕过
 - asp.net – 在会话中存储信用卡信息是否“可以”?
 - asp.net-mvc-3 – 我应该将我的实用程序类放在ASP.NET MVC3
 - asp.net – “读取XML数据时已超出”最大字符串内容长度配额
 - asp.net-mvc-3 – 如何将MVC3中的HTML和C#代码与Razor混合?
 - asp.net-mvc-3 – 添加属性以选择列表选项
 
推荐文章
            站长推荐
            - 如何在ServiceStack服务实现中使用标准的ASP.NET
 - asp.net – MVC IIS7 = CSS问题
 - 我是一名ASP.NET程序员(Webforms).我应该切换到M
 - asp.net-mvc – ASP.NET MVC中的CSS/JS文件的自动
 - asp.net-mvc – 如何关闭Visual Studio MVC视图中
 - asp.net – 在web.config中添加程序集引用
 - asp.net调查问卷引擎
 - 在ASP.NET Core应用中如何设置和获取与执行环境相
 - asp.net – 如何在WebGrid中的列标题使用Display
 - asp.net-mvc – 将json存储在隐藏字段中以反序列
 
热点阅读
            