У меня есть приложение mvc, где я хочу удалить AspNetUser. Я использую await UserManager.DeleteAsync(user);
, это, похоже, работает, пока пользователь выйдет из системы, однако если ошибка входа в систему не выполнена. Я попытался использовать await UserManager.RemoveFromRoleAsync(user.Id,"User");
, который успешно удаляет пользователя из роли, но это, похоже, не влияет на атрибут [Авторизовать], пока пользователь не войдет в систему снова. Есть ли способ полностью удалить пользователя, который в настоящий момент вошел в систему?Удалить/Отключить доступ к зарегистрированному пользователю
редактировать: внесли некоторые изменения и теперь удаление проходит успешно, однако моя главная проблема остается нерешенной и удаленный пользователь все еще вошли в функцию можно так же, как и любой другой пользователь.
Простой способ поместить его Я хочу удалить зарегистрированного пользователя, поэтому, когда он нажмет обновление или откроет новую страницу, он потеряет способность изменять или получать доступ к вещам, к которым он больше не должен обращаться.
// GET: UserAcc/Delete/5
[Authorize(Roles = "Admin")]
public ActionResult Delete(int id)
{
return View(db.UserAccs.First(x => x.Id == id));
}
// POST: UserAcc/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Delete(int id, UserAcc userAccount)
{
try
{
var userAccLocal = db.UserAccs.First(x => x.Id == id);
var lessons = db.Lessons.Where(x => x.userAccLocal.Id);
foreach (var lesson in lessons){ db.Entry(lesson).State =EntityState.Deleted;}
var user = UserManager.FindById(userAccLocal.ApplicationUserId);
//TODO
db.Entry(userAccLocal).State = EntityState.Deleted;
db.SaveChanges();
//IdentityResult roleResult = await UserManager.RemoveFromRoleAsync(user.Id,"User");
IdentityResult DeleteResult = await UserManager.DeleteAsync(user);
return RedirectToAction("Index");
}
catch (Exception e)
{
return RedirectToAction("Index");
}
}
Не могли бы вы разместить здесь свой код. –
Ошибка при удалении –
Я внесла некоторые изменения, и удаление, похоже, прошло успешно. Однако вошедший в систему пользователь вообще не затронут даже при открытии других страниц/обновлении. Есть ли способ предотвратить это? – FishFishFish