通过asp.net身份获取所有用户和所有角色

And*_*ris 13 asp.net visual-studio-2013 asp.net-identity

我有一个我在VS 2013中创建的新项目.我正在使用身份系统,我很困惑如何获得应用程序的所有用户列表以及应用程序中的所有角色.我正在尝试创建一些管理页面,以便我可以添加新角色,向用户添加角色,查看所有人都已登录或锁定.

有人知道怎么做吗?

Ant*_*Chu 25

在ASP.NET Identity 1.0中,您必须从DbContext本身获取此信息...

var context = new ApplicationDbContext();
var allUsers = context.Users.ToList();
var allRoles = context.Roles.ToList();
Run Code Online (Sandbox Code Playgroud)

在ASP.NET 2.0身份(目前为Alpha),此功能被暴露在UserManagerRoleManager...

userManager.Users.ToList();
roleManager.Roles.ToList();
Run Code Online (Sandbox Code Playgroud)

在这两个版本中,您将与用户进行交互RoleManagerUserManager创建角色并为其分配角色.

  • 此功能不是开箱即用的.这可能是因为它不容易做到,"登录"的定义因应用程序而异.例如,用户是否在他们注销之前登录?如果他们使用多个浏览器或设备并且他们已经退出其中一个,该怎么办?也许在某些情况下"登录"意味着用户在过去的x分钟内处于活动状态.您希望它在您的应用程序中如何工作?也许这是讨论的一个很好的起点. (4认同)
  • 谢谢你,这很有效.不能等到2.0,所以它更容易一些. (2认同)