因此,我在我的应用程序中设置了ASP成员资格。我还有一个单独的用户表来管理非会员相关数据。在用户管理期间,我需要确保我的应用程序查询两个表。我有下面的控制器返回一个批准的用户列表,但它似乎必须有一个更简单的方法来完成这一点。什么是更好的方法来做到这一点?按MembershipUserCollection过滤用户表
QuoteExchangeDB _db = new QuoteExchangeDB();
[MyAuthorize(Roles = "Administrator")]
public ActionResult Admin()
{
MembershipUserCollection agents = Membership.GetAllUsers();
IEnumerable<MembershipUser> unfiltered = agents.Cast<MembershipUser>();
var filtered = unfiltered.Where(u => u.IsApproved);
List<User> users = new List<User>();
foreach (var item in filtered)
{
if (item.IsApproved)
{
Guid guid = (Guid)item.ProviderUserKey;
users.Add(_db.Users.Single(u => u.MembershipGuid.Equals(guid)));
}
}
return View(users);
}
您的'if(item.IsApproved)'块似乎是多余的,因为您已经过滤了该块。 –
大声笑...我在添加Linq声明之前做了if语句...我甚至都没有听到。现在解决。 –