检索具有特定电子邮件地址的用户

问题描述:

我试图找到检索具有相同电子邮件地址的用户列表的最有效方法。检索具有特定电子邮件地址的用户

我的第一种方法是非常简单的:

MembershipUserCollection users = Membership.GetAllUsers(); 

一旦我有我的users收集我可以通过列表循环,并确保电子邮件地址匹配做进一步的逻辑。

我担心的是用户列表会增长到逻辑需要很长时间的级别。

我的第二种方法是结合Linq来检索UserName(本例中是电子邮件地址)的用户,这样我就不会遍历每个用户。

MembershipUserCollection userlist = (from user in Membership.GetAllUsers() 
            where user.UserName == emailAddress 
            select user).ToList(); 

我与上面得到的错误是: 找不到源类型“System.Web.Security.MembershipUserCollection”的查询模式的实现。 '哪里找不到'。考虑明确指定范围变量'user'的类型。

有人能帮助我最有效地检索具有匹配电子邮件地址的用户列表吗?

+0

如果担心性能,可以在后端执行此操作吗?或者使用ADO.NET数据对象的Filter或Select方法? '对于大型用户数据库使用GetAllUsers方法时要小心,因为ASP.NET页面中生成的MembershipUserCollection可能会降低应用程序的性能。“http://msdn.microsoft.com/zh-cn/library/dy8swhya的.aspx – Tim 2013-03-05 15:17:42

什么:

Membership.FindUsersByEmail() 

使用

Membership.FindUsersByEmail("[email protected]"); 

您还可以添加会员表格,你的数据模型和查询他们为任何其他模式。