2016-08-27 2 views
0

У меня есть приложение 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"); 
    } 
} 
+0

Не могли бы вы разместить здесь свой код. –

+0

Ошибка при удалении –

+0

Я внесла некоторые изменения, и удаление, похоже, прошло успешно. Однако вошедший в систему пользователь вообще не затронут даже при открытии других страниц/обновлении. Есть ли способ предотвратить это? – FishFishFish

ответ

0

Просто бревно из пользователя из всех сеансов перед удалением аккаунта.

+0

У меня недостаточно репутации, чтобы прокомментировать главный пост. – LoganDark

Смежные вопросы