public static async Task <IdentityResult> UnlockAccountAsync(this FaToolUserManager um, FaToolUser user) { if (await um.IsLockedOutAsync(user.Id) == false) { return(IdentityResult.Success); } var result = await um.SetLockoutEndDateAsync(user.Id, DateTimeOffset.UtcNow); if (!result.Succeeded) { return(result); } result = await um.SetLockoutEnabledAsync(user.Id, false); if (!result.Succeeded) { return(result); } result = await um.ResetAccessFailedCountAsync(user.Id); if (!result.Succeeded) { return(result); } return(result); }
public static async Task <IdentityResult> LockAccountAsync(this FaToolUserManager um, FaToolUser user, int?forMinutes) { if (user.IsAdminUser()) { return(IdentityResult.Failed("Can't lock admin user account.")); } var result = await um.SetLockoutEnabledAsync(user.Id, true); if (result.Succeeded) { if (forMinutes.HasValue) { result = await um.SetLockoutEndDateAsync(user.Id, DateTimeOffset.UtcNow.AddMinutes(forMinutes.Value)); } else { result = await um.SetLockoutEndDateAsync(user.Id, DateTimeOffset.MaxValue); } } return(result); }