powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Релогин аккаунта при выдачи роли или удалении пользователя
25 сообщений из 83, страница 3 из 4
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760826
skew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Давайте по порядку с кодом и скринами:

Главная страница администратора


Главная страница второго пользователя с правами администратора


Список пользователей от лица главного администратора


Снимаю со второго пользователя роль администратора


Выполняется Post запрос и затем перенаправление на Get
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
  [HttpPost]
        [ValidateAntiForgeryToken]
        [Authorize(Roles = "admin")]
        public async Task<ActionResult> EditAccount(ApplicationUser user, string[] selectedRoles)
        {
            try
            {
                if (user == null)
                    return HttpNotFound("Пользователь не найден");
               
                var selectedUser = await UserManager.FindByIdAsync(user.Id);
                if (selectedUser == null)
                    return HttpNotFound("Пользователь не найден");
            
                selectedUser.Email = user.Email;
                selectedUser.Name = user.Name;
                await UserManager.RemoveFromRolesAsync(selectedUser.Id, UserManager.GetRolesList().Select(s => s.Name).ToArray());
                await UserManager.AddToRolesAsync(selectedUser.Id, selectedRoles);
                await UserManager.UpdateAsync(selectedUser);
                
                TempData["StatusMessage"] = "Данные успешно обновлены";
            }
            catch {
                TempData["StatusMessage"] = "Что-то пошло не так, возникла ошибка при обновлении";}

            return RedirectToAction("Relogin");
        }

        [HttpGet]
        [Authorize(Roles = "admin")]
        public async Task<ActionResult> Relogin()
        {
            Session.Clear();
            Session.Abandon();
            Response.Cookies["ASP.NET_SessionId"].Value = string.Empty;
            Response.Cookies["ASP.NET_SessionId"].Expires = DateTime.Now.AddMonths(-10);
            return RedirectToAction("Login", "Account");
        }




Выполнение функции Relogin под отладкой




Администратор перенаправился на форму логина



тестовый аккаунт с которого сняли администратора все еще владеет правами админа, хотя роли admin у него нет



Перезашел тестовым аккаунтом руками, так он выглядит без прав

...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760833
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skew,

а где собственно проверка того, что доступно пользователю?
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760835
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skew,

и какая-то логика у вас странная...

Администратор редактирует роли пользователя и вы его зачем-то отправляете на Relogin.
Вы понимаете, что администратору сбрасываете куку, а не пользователю?
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760854
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skewДавайте по порядку с кодом и скринами:нет, давайте то что вам говорят. Логи и редирект.
А то я вангую что вы ваньку валяете под другим логином.))
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760877
skew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA,

Я и хочу узнать как мне удалить куки выбранному мною пользователю.
Реализация проверки проста через аттрибуты, которые ставятся на методы просмотра и редактирования списка пользоваетелей:
Код: c#
1.
 [Authorize(Roles = "admin")]


и в html странице

Код: html
1.
2.
3.
4.
@if (User.IsInRole("admin"))
                {
                    <li class="nav-item">@Html.ActionLink("Список пользователей сайта", "AccountsList", "Manage", null, new { @class = "nav-link" })</li>
                }
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760886
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skewЯ и хочу узнать как мне удалить куки выбранному мною пользователю.выше тебе дали код. После редиректа проверь свои куки.
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760888
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skew
Код: c#
1.
 [Authorize(Roles = "admin")]

странный ты человек.
Когда работает админ с Ивановым, Иванов в отпуске.
И с его куками ничего не сделать.
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760892
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skewЯ и хочу узнать как мне удалить куки выбранному мною пользователю.Петя тебя троллит тем, что не говорит, что куки пользователю нужно удалять не при обработке запроса администратора, а при обработке запроса (любого) именно этого пользователя. А иначе как ты можешь сбросить куки пользователя, если он не сделал запрос.
Получается так, что ты должен иметь какой-то флаг, который говорит о том, что какому-то пользователю, как только он сделает следующий запрос, нужно сбросить куки.
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760900
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Про троллю твоя придумка как всегда. Много выше сказано что Get нужен.
Вот только я на второй странице догадался что он в POST админа вкорячил код.
Не ожидал)
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760911
skew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Понятно, что когда "Иванов в отпуске" он никаких запросов не шлет, но мне то нужно его заставить перейти по запросу когда он "с отпуска вернется". А если он не станет переходить по ней, то так и будет всеми правами обладать. Причем почему-то я даже принудительно этого "Иванова" заставил выполнить Get запрос (Relogin), в котором происходил Sessin.Abadon(), но у него все равно отображение на страницах не поменялось.

Shocker.Pro,

с флагом вопрос возникает, получается его нужно ставить и проверять на каждый метод и класс, которые вообще есть на сайте чтобы ни одно его действие не произошло без очистки кук, что тоже, наверное, неправильно ?
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760914
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Про троллю твоя придумка как всегда. Много выше сказано что Get нужен.
Вот только я на второй странице догадался что он в POST админа вкорячил код.на второй странице догадался, но продолжал "не замечать".

Petro123Много выше сказано что Get нужен.Почему только GET? Отлавливать нужно любое обращение уволенного пользователя, чтобы он и через POST не получил доступа.
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760917
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skewс флагом вопрос возникает, получается его нужно ставить и проверять на каждый метод и класс, которые вообще есть на сайте чтобы ни одно его действие не произошло без очистки кук, что тоже, наверное, неправильно ?Совершенно верно. Иначе он получит доступ, куда не следует. Но почему на каждый метод и класс? Сделай централизованно.
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760920
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proно продолжал "не замечать".тут много ничего не замечающих)))
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760921
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skewзаставил выполнить Getневозможно.
Выйдет из отпуска и будет Get.
Код будешь писать?)))
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760922
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProПочему только GET?"не мешать все в кучу".
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760927
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Shocker.ProПочему только GET?"не мешать все в кучу".У пользователя может быть открыта страница. Если не перехватывать POST, то получится - его лишили доступа, но он может нажать кнопку и выполнить через POST запрещенное действие.
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760935
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProPetro123пропущено...
"не мешать все в кучу".У пользователя может быть открыта страница. Если не перехватывать POST, то получится - его лишили доступа, но он может нажать кнопку и выполнить через POST запрещенное действие.еще раз.
Ты сказал верно, но после решения вопроса ЭЛЕМЕНТАРНОГО НА ДВУХ СТРАНИЦАХ.
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760936
skew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

ну если так делать, тогда понятно, просто думал, что должен быть какой-то более автоматизированный способ в такой масштабной системе как asp net mvc, чем проверку делать отдельно через БД, а не просто возможность почистить чьи-то куки и снять авторизацию.
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760948
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skewну если так делать, тогда понятно, просто думал, что должен быть какой-то более автоматизированный способ в такой масштабной системе как asp net mvc, чем проверку делать отдельно через БД, а не просто возможность почистить чьи-то куки и снять авторизацию.Честно говоря, я не знаю, может и есть. Поэтому я с самого начала и лез в топик, ожидая, что проконсультирует кто-то более опытный. В данном случае просто прояснил непонятный момент.
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760955
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skewну если так делать, тогда понятнону наконец то))))).
Нельзя, не ходя в магазин, узнать что там нет хлеба (с)
Удачи!
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760956
skew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Petro123]skewКод будешь писать?)))

Да,пишу, пытался все же понять на чем остановиться)
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760960
skew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123skewну если так делать, тогда понятнону наконец то))))).
Нельзя, не ходя в магазин, узнать что там нет хлеба (с)
Удачи!

Это понятно, но у системы столько автоматических проверок, а проверить то, что пользователь больше не имеет какой-то из ролей система не может, нужно всю это автоматизацию получается перегонять в ручную проверку. Хотя казалось бы вопрос тривиален
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760983
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skew,
В Core сменили метод авторизации напрочь.
Смотри там. Может решено.
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760989
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skewХотя казалось бы вопрос тривиаленза 10 минут и кука протухла разве не решение?
...
Рейтинг: 0 / 0
Релогин аккаунта при выдачи роли или удалении пользователя
    #39760998
skew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

извиняюсь, я наверное Вам надоел уже :) но тут я больше не столь для конкретного решения, что прям нужно так и не иначе, а просто столкнулся с таким феноменом и для познавательных целей хотел узнать как его можно решить, ведь не сейчас, а когда-нибудь, но это будет важно. И вот вы решили другу дать права админа, а потом бац и он стал врагом, вы быстро лишаете его прав админа, а он за эти 10 минут грохает все, что у вас накопилось за 5 лет работы :)
...
Рейтинг: 0 / 0
25 сообщений из 83, страница 3 из 4
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Релогин аккаунта при выдачи роли или удалении пользователя
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]