MembershipUserCollection

MembershipUserCollection

我正在通过编写示例应用程序来学习ASP.Net MVC3 EF4。我使用的是标准成员资格提供程序。我在成员资格提供程序中具有requireUniqueEmail =“ true”,因此每个MembershipUser的电子邮件不超过1个。

我想通过他们的电子邮件地址查找特定用户。有一个功能可以帮助:

MembershipUserCollection users = Membership.FindUsersByEmail(model.Email);


由于我有唯一的电子邮件,如何从MembershipUserCollection获取MembershipUser?我知道我可以做一个foreach循环:

foreach (MembershipUser user in users)
{
username = user.UserName;
}


但是有没有更快速的方法来访问第一行?

这是行不通的:MembershipUser user = users [0];

但这就是我想要的。

谢谢!!

更新:这可行,但是我仍然对以上答案感兴趣:

string username1 = Membership.GetUserNameByEmail(model.Email);
MembershipUser user = Membership.GetUser(username1);

最佳答案

由于每个用户都有唯一的电子邮件,为什么要使用MembershipUserCollection

相反,您可以直接使用

    string userName = Membership.GetUserNameByEmail(model.Email);

    MembershipUser oMu = Membership.GetUser(userName);


oMu对象将为您提供用户的所有属性,以及您在GetUserNameByEmail(model.Email)中传递的电子邮件地址

根据相关更新进行编辑

我认为加载只有单个记录的集合是不相关的,与字符串用户名(在我的示例中使用的)相比,内存消耗将更多,另外,在查找单个记录(使用循环的位置)时也会遇到问题,获取详细信息会造成不必要的延迟)。另外,减少了代码行(编译代码变得更加容易和快捷。)

关于c# - 从MembershipUserCollection获取单个MembershipUser,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10662397/

10-11 05:55