SetLockoutEndDateAsync

SetLockoutEndDateAsync

我有一个 ajax 表单,当用户单击复选框将用户锁定时回发。当我检查该用户的 LockoutEndDateUtc 列时,它仍然为 NULL。

这是我的 Json 方法。

    [Authorize]
    [HttpPost]
    public JsonResult AjaxUpdateUserLockout(string userId)
    {
        string message = "";

        if (string.IsNullOrEmpty(userId)) message = "Unable to find user!";

        try
        {
            var result = UpdateLockoutDate(userId);
            message = "Success";
        }
        catch (Exception ex)
        {
            NLogger.Error(ex);
            message = "Error updating user!";
        }

        return new JsonResult()
        {
            JsonRequestBehavior = JsonRequestBehavior.AllowGet,
            Data = new { result = message }
        };
    }

这是我设置锁定日期的方法
    private async Task<IdentityResult> UpdateLockoutDate(string userId)
    {
        var user = ApplicationUserManager.FindById(userId, new AFFirst2Entities());


        if (user.LockoutEndDateUtc != null && user.LockoutEndDateUtc != DateTime.MinValue)
        {
            return await ApplicationUserManager.SetLockoutEndDateAsync(userId, DateTimeOffset.MinValue);
        }
        else
        {
            return await ApplicationUserManager.SetLockoutEndDateAsync(userId, DateTimeOffset.MaxValue);
        }
    }

我错过了什么吗?所有用户的 LockoutEnabled 列都设置为 true。

最佳答案

我通过设置 user.LockoutEndDateUtc = DateTime.UtcNow 来解决这个问题,而不是使用 SetLockoutEndDateAsync 方法。

关于c# - SetLockoutEndDateAsync 不更新数据库中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41642171/

10-11 11:20