锁定用户
Locking out a user
作为管理员,我希望能够单击用户并使其无法登录,我试过了,但似乎没有用。
有什么建议吗?
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);
}
您的方向是正确的,但需要做一件事:确实应该将 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。
作为管理员,我希望能够单击用户并使其无法登录,我试过了,但似乎没有用。
有什么建议吗?
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);
}
您的方向是正确的,但需要做一件事:确实应该将 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。