|
0 / 0 / 0
Регистрация: 30.07.2020
Сообщений: 27
|
|||||||||||||||||||||||||||
Управление ролями пользователей с помощью Identity в ASP.NET CORE MVC04.11.2023, 15:19. Показов 3155. Ответов 20
Метки нет (Все метки)
Я изучаю как работает Identyity в C# MVC и опираюсь на книгу "Фриман А. - ASP.NET Core MVC 2 с примерами на C# для профессионалов - 2019", то есть беру примеры из этой книги и переписываю в своё приложение.
В главе 29 описывается аутентификация пользователей, у меня проблема с функционалом управления ролями (стр. 922 этой книги). При переходе по адресу https://localhost:7174/RoleAdmin вылетает ошибка SQL, сообщающая что я пытаюсь выполнить одновременно два запроса одновременно через один контекст:
Мой код контроллера Controllers/RoleAdminController.cs выглядит следующим образом:
0
|
|||||||||||||||||||||||||||
| 04.11.2023, 15:19 | |
|
Ответы с готовыми решениями:
20
Проблема с ролями в Asp net Identity Разница между ASP.NET Core 2, ASP.NET Core MVC, ASP.NET MVC 5 и ASP.NET WEBAPI 2 Где находится контроллер регистрации в стандартном шаблоне Visual Studio asp net core mvc + identity |
|
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
|
|||||||
| 04.11.2023, 16:54 | |||||||
1
|
|||||||
|
0 / 0 / 0
Регистрация: 30.07.2020
Сообщений: 27
|
|||||||||||||
| 04.11.2023, 17:44 [ТС] | |||||||||||||
). Index.cshtml для RoleAdminController.cs, относящийся к сабжу выглядит так:
0
|
|||||||||||||
|
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
|
|
| 04.11.2023, 18:18 | |
|
0
|
|
|
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
|
|||||||
| 04.11.2023, 18:54 | |||||||
|
IamRain, как мы уже выяснили
проверку на контекст мы никуда не убирали поэтому и любовь мне лично не мешает
1
|
|||||||
|
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
|
||
| 04.11.2023, 19:04 | ||
|
Восстановление контекста (переключение контекста физического потока) - уже прилично дольше (не замерял) - целевое применение СonfigureAwait(false). А выполнение кода на ThreadPool-е с наличием ConfigureAwait(false) говорит о том, что человек так них*ра и не понял, для чего это нужно на самом деле.
1
|
||
|
0 / 0 / 0
Регистрация: 30.07.2020
Сообщений: 27
|
|
| 04.11.2023, 19:09 [ТС] | |
|
0
|
|
|
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
|
|
| 04.11.2023, 19:19 | |
|
kradun, попробуйте модель явно в виде List<IdentityRole> обозначить.
И в теле разметки можно вместо Count() использовать просто свойство Count. Не совсем понятно, почему у вас наблюдается эта проблема, честно говоря.
1
|
|
|
0 / 0 / 0
Регистрация: 30.07.2020
Сообщений: 27
|
|||||||||||||
| 04.11.2023, 19:31 [ТС] | |||||||||||||
|
Происходит вообще что то странное, если написать без await:
0
|
|||||||||||||
|
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
|
|
| 04.11.2023, 19:37 | |
|
kradun, выложите ваш проект на гитхаб - хотелось бы воспроизвести проблему.
И дайте ссылку сюда, пожалуйста.
1
|
|
|
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
|
|
| 04.11.2023, 19:45 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 30.07.2020
Сообщений: 27
|
||
| 04.11.2023, 19:53 [ТС] | ||
|
Проект в папке /server База данных - PostgreSQL 16.0, в подпапке /database лежит бэкап сервера
0
|
||
|
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
|
|
| 04.11.2023, 20:21 | |
|
1
|
|
|
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
|
|
| 04.11.2023, 20:31 | |
|
Вроде не наблюдается проблемы. Но у меня таблица с ролями пустая.
0
|
|
|
0 / 0 / 0
Регистрация: 30.07.2020
Сообщений: 27
|
|
| 04.11.2023, 20:35 [ТС] | |
|
0
|
|
|
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
|
|
| 04.11.2023, 20:47 | |
|
Создается успешно, а редактировать там нечего. Добавить/Удалить пользователей (которых пока нету).
Вы бы описали четкую последовательность, при который воспроизводится ошибка - не хочется гадать.
0
|
|
|
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
|
|
| 04.11.2023, 20:52 | |
|
По-хорошему, ваше приложение должно само запускать миграции (создавать схему, сидировать базу).
Это делается при старте приложения, чтобы остальным разработчикам было легче запускать приложение, не занимаясь возней с базой.
0
|
|
|
0 / 0 / 0
Регистрация: 30.07.2020
Сообщений: 27
|
|||
| 04.11.2023, 21:09 [ТС] | |||
|
У меня в БД есть 3 пользователя, которых можно создать перейдя по адресу /Admin и 3 роли До того как написать на форум ошибка воспроизводилась когда я закомментировал весь код в файле Infrastructure/RoleUsersTagHelper.cs и кликал по кнопке Edit Role Возможно у вас появится ошибка если вы тоже создадите пользователей и несколько ролей, а потом перейдете по адресу /RoleAdmin
0
|
|||
|
4693 / 2701 / 734
Регистрация: 02.08.2011
Сообщений: 7,226
|
||||||
| 04.11.2023, 21:43 | ||||||
|
Да, проблема воспроизведена. ТегХелпер коряво реализован - каждое его упоминание делает запрос в таблицу пользователей.
Костыльное решение - писать список пользователей один раз в статическую переменную (на момент генерации странички). По завершению - обнулять. Рекомендую подумать над тем, как это можно реализовать по-другому, и нужен ли здесь вообще этот хелпер.
Вот этот _users = null - тут я поторопился, я бы занулял это явно как-то через статику после завершения генерации, либо просто бы добавил InMemoryCache<string[]> который бы был полем хелпера и который бы хранил список пользователей по 2-3 минуты, условно.
1
|
||||||
|
0 / 0 / 0
Регистрация: 30.07.2020
Сообщений: 27
|
||
| 04.11.2023, 21:46 [ТС] | ||
|
0
|
||
| 04.11.2023, 21:46 | |
|
Помогаю со студенческими работами здесь
20
Перейти с asp.net identity на core identity
Asp.net core identity
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|