我正在做这样的事情来获取已被阻止的所有用户的列表:
public IQueryable<Aspnet_User> GetBannedUsers()
{
return db.Aspnet_Memberships.Where(x => x.IsApproved == false).Select(x => x.Aspnet_User);
}
我这样做是为了阻止用户:
MembershipUser user = Membership.GetUser(username);
if (user != null)
{
user.IsApproved = isApproved;
Membership.UpdateUser(user);
}
我怎样才能获得被禁止的被禁用用户列表。 最近被禁止的应该是第一个。
答案 0 :(得分:2)
public IQueryable<Aspnet_User> GetBannedUsers()
{
return db.Aspnet_Memberships
.Where(x => x.IsApproved == false)
.OrderByDescening(x => x.BannedDate) //adjust property here
.Select(x => x.Aspnet_User);
}
答案 1 :(得分:2)
默认情况下,asp.net会员资格不存储此日期,因此您必须使用变通方法。一个简洁的方法是引入自己的表,但我建议滥用LastLoginDate。只要用户没有正确登录(您的!已批准将阻止发生),默认机制将不会触及此日期。
用于阻止用户的修改代码:
MembershipUser user = Membership.GetUser(username);
if (user != null)
{
user.IsApproved = isApproved;
user.LastLoginDate = DateTime.Now;
Membership.UpdateUser(user);
}
对禁止日期进行排序的代码,复制自@ Femaref的答案:
public IQueryable<Aspnet_User> GetBannedUsers()
{
return db.Aspnet_Memberships
.Where(x => x.IsApproved == false)
.OrderByDescening(x => x.LastLoginDate)
.Select(x => x.Aspnet_User);
}