ASP.NET MVC获取具有特定配置文件属性的用户列表

时间:2010-04-11 13:45:48

标签: asp.net-mvc asp.net-membership asp.net-profiles

我正在使用ASP.NET MVC 1,并且我使用WebProfile Builder VS加载项添加了一个自定义Profile类(在此处找到:http://code.msdn.microsoft.com/WebProfileBuilder/Release/ProjectReleases.aspx?ReleaseId=980)。

在我的某个表单上,我想要一个共享特定配置文件值的所有用户的下拉列表。

我可以看到我可以使用以下命令获取所有用户的列表:

Membership.GetAllUsers()

但是我无法看到如何让所有具有特定配置文件值的用户,在我的情况下是CellId。

我是以正确的方式接近这个吗?我使用了成员资格角色来定义哪些用户是管理员等,但是配置文件似乎是分组用户的正确位置。

任何有关如何访问用户列表的详细信息,以及关于我是否在这里寻求正确途径的评论都将非常感激。

非常感谢, 萨姆

2 个答案:

答案 0 :(得分:3)

Profile没有查询API,但这可能会给你一些指导:

var usersWithNonZeroCounter = Membership.GetAllUsers().Cast<MembershipUser>()
    .Where(user => true /*insert your user criteria here*/)
    .Select(user => ProfileBase.Create(user.UserName, true))
    .Where(profile => ((int)profile["counter"]) > 0 /*insert your profile criteria here*/)
    .ToList();

答案 1 :(得分:1)

如果您只需要一次比较,可以使用以下声明:

return Membership.GetAllUsers().Cast<MembershipUser>()
        .Where(user => ((int)ProfileBase.Create(user.UserName, true)["Owner"]) == _ownerid);

如果您需要更多评估,为什么不使用 let 运算符来存储配置文件。