如何从ASP.NET身份获取用户列表?

前端之家收集整理的这篇文章主要介绍了如何从ASP.NET身份获取用户列表?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
编辑:此问题已过时

身份框架在我问这个时刻是一个移动的目标。作者改变了很多事情,他们已经解耦了几件事情,使事情更容易。

看看Asp.NET Identity Sample project on github

我正在创建一个需要用户管理的小应用程序。不允许注册,而是有一个超级用户将创建和修改登录信息。

我使用新的ASP.NET Identity成员系统,并且确定,创建用户添加角色是容易和直观。

现在,我的问题:如何获取使用AuthenticationIdentityManager类,生成的AccountController类使用的用户列表?我找不到从我的控制器访问用户列表的方法

(顺便说一下,新名字“身份”可能听起来真棒的一些人,但它是一个痛苦寻找)。

编辑:如果我尝试这样做

ApplicationDbContext UsersContext = new ApplicationDbContext();
UsersContext.Users.ToList(); // Exception

我得到一个异常列名“Discriminator”无效。 ApplicationDbContext的定义由新的应用程序向导自动生成

using Microsoft.AspNet.Identity.EntityFramework;

namespace Cobranzas.Models
{
    public class ApplicationUser : User
    {

    }
    public class ApplicationDbContext : IdentityDbContextWithCustomUser<ApplicationUser>
    {

    }
}

所以我的猜测是Discriminator列是用于从User分离ApplicationUser。但是,它不存在于我的数据库(由应用程序自动创建)。

解决方法

我发现我没有使用派生的ApplicationUser对象的任何东西,所以我只是继续改变它的所有用途为普通老用户。然后我只是改变了ApplicationDbContext的定义为:
public class ApplicationDbContext : IdentityDbContext<
    User,UserClaim,UserSecret,UserLogin,Role,UserRole,Token,UserManagement>
{
}

现在我可以访问用户列表:

UsersContext = new ApplicationDbContext();
...
UsersContext.Users.ToList();

但是,我认为这会回来,困扰我在将来(我可能需要添加更多的字段给用户),所以可能我必须使用相同的方法,在这个问题:

Get all role names in ASP.NET MVC5 Identity system

编辑:因为我需要添加一个新的属性,我不得不还原我的更改。所以我继续前进,并与ASP.NET Identity Sample Project进行了逐行比较,发现生成的项目有以下行:

IdentityManager = new AuthenticationIdentityManager(new IdentityStore());

而Sample应用程序在构造函数中包含了数据库上下文。所以我把它添加到我的构造函数,重新创建数据库,问题消失了。

IdentityManager = new AuthenticationIdentityManager(new IdentityStore(new ApplicationDbContext()));

猜你在找的asp.Net相关文章