SetLockoutEndDateAsync不更新db中的值

时间:2017-01-13 19:33:38

标签: c# owin

我有一个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。

1 个答案:

答案 0 :(得分:0)

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