【问题标题】:Setting up UserRole management with MVC6 and the new Identity使用 MVC6 和新身份设置 UserRole 管理
【发布时间】:2016-04-16 03:56:42
【问题描述】:

我有一个新的 asp.net (core 1.0) mvc6 web 应用程序,带有最新版本的 identity 3.x。

我正在尝试弄清楚我必须自己做些什么,以及使用 Identity 3.x 已经为我提供即插即用的功能。

这是我的目标:

我想创建以下内容:
UserManagement 页面(将列出 AspNetUsers 表中的用户并可以在此处添加新用户)

UserDetail 页面(可以在此处为用户添加角色,该角色将保存在 AspNetUserRoles 表中)

角色管理页面(将列出 AspNetRoles 表中的角色,并可以在此处向系统添加新角色)

我想弄清楚: 如果上面内置的 UserManager 类有多少可以帮助我。我注意到有 RemoveFromRoleAsync、RemoveFromRolesAsync、AddToRoleAsync 和 AddToRolesAsync 函数。我很可能会调用这些函数来进行保存,但我假设我必须创建自己的函数来在网格中列出用户和角色。

【问题讨论】:

  • 大家都知道,我最终很容易使用这些管理器在我的应用程序中创建完整的用户、角色和用户角色管理。我需要的每一件事都有一个功能。我只需要在我的控制器中为所有 CRUD 创建操作方法。

标签: c# asp.net asp.net-identity asp.net-core-1.0 asp.net-identity-3


【解决方案1】:

您可以使用 UserManager 和 RoleManager。 UserManager 有 Users,RoleManager 有 Roles 属性。

//假设您已将这些注入到控制器的构造函数中 var users = _userManager.Users.ToList(); var 角色 = _roleManager.Roles.ToList();

如果您想了解更多关于身份可以做什么的信息,我们提供了关于身份的免费课程https://mva.microsoft.com/en-us/training-courses/customizing-asp-net-authentication-with-identity-8647

【讨论】:

  • 我最终创建了两个控制器:使用内置异步脚手架的角色控制器和用户控制器。然后就像你说的那样,我根据需要注入了管理器并使所有 ActionMethods 工作!一件奇怪的事情是,不可能创建简单地返回 _userManager.Users.ToList(); 的 Index Action 方法。异步...您知道一种方法吗?我不能将 await 放在它之前,因为 .Users 不是异步方法。
  • 忽略我之前的问题,我最终导入了 Microsoft.Data.Entity 并调用了 .ToListAsync();在 _roleManager.Roles.Select 的末尾
猜你喜欢
  • 1970-01-01
  • 2016-05-13
  • 2014-01-13
  • 1970-01-01
  • 1970-01-01
  • 2011-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多