По умолчанию членство в asp.net не сохраняет эту дату, поэтому вам придется использовать обходной путь. Аккуратный подход состоит в том, чтобы представить вашу собственную таблицу, но я предлагаю злоупотреблять LastLoginDate. Механизм по умолчанию не будет касаться этой даты, пока пользователь не войдет в систему должным образом (что предотвращает ваш! IsApproved).
Модифицированный код для блокировки пользователя:
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);
}