0

我有一个带有会员部分的网站。还有一个管理员来管理用户。我想要的是管理员看到其他用户的信息,比如用户名和电子邮件。

目前,注册页面会按照本教程向用户询问用户名、密码和电子邮件。它记住那些在数据库中刚刚找到的,在UserProfile表中。我的问题是访问它们。我知道如何使用 MVC3Membership.GetAllUsers().Cast<MembershipUser>()where指定请求。

但是,据我所知,在 MVC4 中Membership.GetAllUsers()是不允许的。我尝试了很多在网上找到的不同方法,但没有一个能解决我的问题。我发现的最好的方法是只获取用户名,在这篇文章中找到 :

var model = Roles.GetUsersInRole("StatusWaiting").Select(Membership.GetUser).ToList();

"statusWaiting"是我在我的数据库中寻找的用户的角色。但是,有了这个(以及其他一些具有相同结果的),我有出现在模型中的 EmailID,但它总是空的。

有人知道如何实现这一目标吗?我仍在寻找它,但我还没有找到任何东西。

编辑:如果有另一种方法可以实现这一点,我会敞开心扉

EDIT2:通过上面的行,我得到 MemberShipUser 的字段如下:评论、CreationDate、Email、IsApproved、...、ProviderName、...、UserName。所以我认为我在注册时放置电子邮件的表格与我试图获取信息的表格不同。但我不知道它可能是哪一个

4

1 回答 1

1

如果角色是“statusWaiting”,那么您可以使用以下方式获取角色:

var model = Roles.GetUsersInRole("statusWaiting"); //Note the case

如果数据库填充正确,则错误是您的查询。

编辑:

默认角色提供者的方法签名是:

public string[] GetUsersInRole(string roleName)

这就是您只能在查询中获得用户名的原因。如果您想要更多数据,请直接查询您的数据库,而不使用角色提供程序。像下面这样的一些代码应该会有所帮助。

var query = db.UserTableName.Where(x => x.Role == "statusWaiting");
于 2013-05-09T14:41:43.470 回答