开箱即用,System.Web.Security.Membership 实现了几个搜索方法:
- 通过电子邮件查找用户
- 按名称查找用户
我正在使用CodePlex 的 WSAT 项目来管理我的会员数据库。该工具在 ProfileCommon 类中实现了额外的配置文件属性。
假设我在用户的个人资料中有一个名为Firm的属性。
我需要实现一个自定义搜索方法来搜索公司属性,我想在代码中完成这一切。不想编写存储过程(因为所有配置文件属性都存储在 WSAT 工具的 1 个数据库列中)。
这样的事情显然不是正确的方法,但这里只是为了演示访问用户的配置文件属性:
private MembershipUserCollection SearchByFirm(string firmName, MembershipUserCollection allRegisteredUsers)
{
MembershipUserCollection searchResults = new MembershipUserCollection();
foreach (MembershipUser user in allRegisteredUsers)
{
ProfileCommon profile = Profile.GetProfile(user.UserName);
if (profile.Firm.ToLowerInvariant().Contains(firmName.ToLowerInvariant()))
{
searchResults.Add(user);
}
}
return searchResults;
}
我可以把它变成一些 LINQ 的优点吗?