作为管理员,我希望能够点击一个用户并使其无法登录,我尝试了这个,但它似乎没有用。
任何提示?
public void LockUser(int Id)
{
var UserMan = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
var user = UserMan.FindById(Id);
user.LockoutEnabled = true;
UserMan.Update(user);
}
答案 0 :(得分:4)
你是在正确的轨道,但需要一件事:LockoutEnabled确实应该设置为true,但所有这一切都是允许此用户被锁定。你需要实际锁定他。您可以通过指定锁定结束日期来完成此操作,因此完整的代码将如下所示:
public void LockUser(int Id)
{
var UserMan = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
var user = UserMan.FindById(Id);
user.LockoutEnabled = true;
user.LockoutEndDateUtc = DateTime.Now.AddDays(14);
UserMan.Update(user);
}
以上代码会将用户锁定2周。有关详细信息,请参阅this blog post。