我有一个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。
答案 0 :(得分:0)
我通过设置user.LockoutEndDateUtc = DateTime.UtcNow
而不是使用SetLockoutEndDateAsync
方法来解决此问题。