锁定用户

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