Пытаюсь удалить пользователя:
public async Task<ActionResult> Delete(string id)
{
ApplicationUser user = await userManager.FindByIdAsync(id);
if (user != null)
{
IdentityResult result = await userManager.DeleteAsync(user);
if (result.Succeeded)
{
return RedirectToAction("Index");
}
else
{
TempData["Error"] = "Error!";
return RedirectToAction("Index");
}
}
TempData["Error"] = "Error!";
return RedirectToAction("Index");
}
Пользователь не удаляется. Происходит ошибка:
System.Data.Entity.Infrastructure.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.Entity.Core.UpdateException: An error occurred while updating the entries. See the inner exception for details. ---> System.Data.SqlClient.SqlException: The DELETE statement conflicted with the REFERENCE constraint "FK_dbo.ClientProfiles_dbo.AspNetUsers_Id". The conflict occurred in database "Schedule", table "dbo.ClientProfiles", column 'Id'. The statement has been terminated.
Пытался удалять сначала роль, а потом самого пользователя, но ошибка все равно происходит. Как ее исправить?
Как написали в комментариях:
удаление пользователей системы - неверная практика
Так что вместо удаления, я делаю пользователей неактивными.
В UserManager
надо прописать:
UserManager.UserLockoutEnabledByDefault = true; //разрешает блокировку пользователей
UserManager.DefaultAccountLockoutTimeSpan = DateTime.Now.AddYears(100).TimeOfDay; //время блокировки
Далее, когда я хочу заблокировать пользователя:
public async Task<ActionResult> LockOut(string id)
{
ApplicationUser user = await userManager.FindByIdAsync(id);
if (user != null)
{
user.LockoutEnabled = true;
await userManager.UpdateAsync(user);
}
return RedirectToAction("Index");
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть Grid, на нем расположены в виде DataGrid информация для пользователя только стилизовано, использовать стандартный datagrid не захотелВнутри ячеек...
Есть проблема с передачей данных из ajax запроса в экшен контроллера