ASP.Net身份,角色中的用户始终为空

拉胡尔·帕蒂尔(Rahul Patil)

在本文之后,我已经使用一些自定义属性实现了ASP.Net身份-

http://typecastexception.com/post/2014/06/22/ASPNET-Identity-20-Customizing-Users-and-Roles.aspx

一切正常,除了。我想让用户担任特定角色(例如,让我成为管理员角色的所有用户)。

我尝试了以下方法来检索用户-

            var userRole = _roleManager.Roles.SingleOrDefault(m => m.Name == role.Name);
            var usersInRole = _userManager.Users.Where(m => m.Roles.Any(r => r.RoleId == userRole.Id));
            var usersInRole2 = _userService.GetUsers().Where(u => u.Roles.Any(r => r.RoleId == userRole.Id));

哪里_roleManager是类型ApplicationRoleManager : RoleManager<ApplicationRole>_userManager是类型的ApplicationUserManager : UserManager<ApplicationUser, string>

我无法在_userManager和中获得用户下的角色_userService

PS:_userService是扩展查询的IRepository的服务DbSet<ApplicationUser>

我可以看到角色已正确映射到表中,ApplicationUserRoles并且在执行此操作时可以得到预期的结果_userManager.IsInRole(user.Id, "Admin");

这可能是什么地方出了问题?

拉胡尔

拉胡尔·帕蒂尔(Rahul Patil)

我弄清楚问题出在哪里-

最初,表ApplicationUserRoles仅具有主键定义,而不具有外键映射(许多映射)。

我加了这个 OnModelCreating

modelBuilder.Entity<ApplicationUserRole>().HasKey((ApplicationUserRole r) => new { UserId = r.UserId, RoleId = r.RoleId });

//added these definitions
modelBuilder.Entity<ApplicationUser>().HasMany(p => p.Roles).WithRequired().HasForeignKey(p => p.UserId);
modelBuilder.Entity<ApplicationRole>().HasMany(p => p.Users).WithRequired().HasForeignKey(p => p.RoleId);

这样就完成了关系,现在我可以看到Users下面的内容Roles,反之亦然。

这导致在更新数据库时出现问题,但是我只需要在迁移中进行一些更改-

对象“ PK_Dbo.ApplicationUserRole”取决于列“ UserId”。ALTER TABLE DROP COLUMN UserId失败,因为一个或多个对象访问此列。

我所做的就是,转到迁移文件并将这些行移至上方 DropColumn

DropIndex("dbo.ApplicationUserRole", new[] { "ApplicationUser_Id" });
DropIndex("dbo.ApplicationUserRole", new[] { "ApplicationRole_Id" });
DropPrimaryKey("dbo.ApplicationUserRole");

这也解决了update-database异常。

拉胡尔

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Cookie域在ASP.NET 4.5中始终为空

来自分类Dev

IFormFile在Asp.Net Core WebAPI中始终为空

来自分类Dev

Cookie域在asp.net 4.5中始终为空

来自分类Dev

asp.net 参数始终为空

来自分类Dev

ASP.NET(MVC)用户,角色和角色中的用户

来自分类Dev

ASP.NET(MVC)用户,角色和角色中的用户

来自分类Dev

在ASP.NET身份框架中更改时是否刷新当前用户的角色?

来自分类Dev

如何检查用户在asp.net身份中是否担任过多个角色

来自分类Dev

用户角色更改时,ASP.net身份OWIN cookie?

来自分类Dev

多站点中的ASP.NET身份用户和角色

来自分类Dev

Asp.net身份:登录时更改用户角色

来自分类Dev

Asp.Net身份发现用户没有角色

来自分类Dev

ASP.NET IIS用户角色身份验证

来自分类Dev

使用asp.net身份更新用户角色

来自分类Dev

具有MVC Asp.net身份角色的用户列表

来自分类Dev

用户角色更改时,ASP.net身份OWIN cookie?

来自分类Dev

Asp.net身份-如何维护登录用户角色?

来自分类Dev

Facebook MVC 5 ASP.NET身份-某些用户的电子邮件为空

来自分类Dev

在ASP.NET中的FormAuthentication登录页面的每次登录时为用户分配角色?

来自分类Dev

尝试为Asp.Net mvc 5中的用户和角色播种数据时出错

来自分类Dev

ASP.net MVC + ASP.net身份播种角色和用户

来自分类Dev

种子方法中的Asp.Net身份创建角色失败

来自分类Dev

无法在asp.net身份中添加角色

来自分类Dev

asp.net mvc 5 DropDownListFor始终为空

来自分类Dev

ASP.NET身份更新用户-空引用

来自分类Dev

使用组织帐户身份验证管理项目内部的Asp.net身份用户/角色

来自分类Dev

Asp.net 核心身份:在 cshtml 中检查用户是否为 admin

来自分类Dev

ASP.Net - FileUpload HasFile 始终为 false,FileName 始终为空

来自分类Dev

列出asp.net Identity 2.0中的用户和角色

Related 相关文章

  1. 1

    Cookie域在ASP.NET 4.5中始终为空

  2. 2

    IFormFile在Asp.Net Core WebAPI中始终为空

  3. 3

    Cookie域在asp.net 4.5中始终为空

  4. 4

    asp.net 参数始终为空

  5. 5

    ASP.NET(MVC)用户,角色和角色中的用户

  6. 6

    ASP.NET(MVC)用户,角色和角色中的用户

  7. 7

    在ASP.NET身份框架中更改时是否刷新当前用户的角色?

  8. 8

    如何检查用户在asp.net身份中是否担任过多个角色

  9. 9

    用户角色更改时,ASP.net身份OWIN cookie?

  10. 10

    多站点中的ASP.NET身份用户和角色

  11. 11

    Asp.net身份:登录时更改用户角色

  12. 12

    Asp.Net身份发现用户没有角色

  13. 13

    ASP.NET IIS用户角色身份验证

  14. 14

    使用asp.net身份更新用户角色

  15. 15

    具有MVC Asp.net身份角色的用户列表

  16. 16

    用户角色更改时,ASP.net身份OWIN cookie?

  17. 17

    Asp.net身份-如何维护登录用户角色?

  18. 18

    Facebook MVC 5 ASP.NET身份-某些用户的电子邮件为空

  19. 19

    在ASP.NET中的FormAuthentication登录页面的每次登录时为用户分配角色?

  20. 20

    尝试为Asp.Net mvc 5中的用户和角色播种数据时出错

  21. 21

    ASP.net MVC + ASP.net身份播种角色和用户

  22. 22

    种子方法中的Asp.Net身份创建角色失败

  23. 23

    无法在asp.net身份中添加角色

  24. 24

    asp.net mvc 5 DropDownListFor始终为空

  25. 25

    ASP.NET身份更新用户-空引用

  26. 26

    使用组织帐户身份验证管理项目内部的Asp.net身份用户/角色

  27. 27

    Asp.net 核心身份:在 cshtml 中检查用户是否为 admin

  28. 28

    ASP.Net - FileUpload HasFile 始终为 false,FileName 始终为空

  29. 29

    列出asp.net Identity 2.0中的用户和角色

热门标签

归档