Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
ИгорьОК
2 / 2 / 0
Регистрация: 27.10.2013
Сообщений: 45
1

Добавление ролей

12.09.2016, 14:25. Просмотров 815. Ответов 7
Метки нет (Все метки)

Не могу добавить роль для пользователя, выдаёт следующую ошибку :

Ошибка сервера в приложении '/'.
Роль '' не найдена.
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.Configuration.Provider.ProviderException: Роль '' не найдена.

Ошибка источника:


Строка 51: IdentityResult result = await UserManager.CreateAsync(user, model.Password);
Строка 52: string RoleName = model.Role.Name;
Строка 53: Roles.AddUserToRole(model.Name, "Сотрудник");
Строка 54: if (result.Succeeded)
Строка 55: {



В чём может быть проблема?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2016, 14:25
Ответы с готовыми решениями:

Создание ролей пользователей
Доброго времени суток, уважаемые форумчане. Залез в asp.net mvc и работаю по...

Не работает разграничение ролей
Здравствуйте уважаемый форумчане! У меня следующая проблема, есть таблица...

Редактирование ролей. Галочки
Доброго времени суток, коллеги. Есть 2 модели Role(таблица Roles) и...

Функция диспетчера ролей не включена
Внедрил в свой проект авторизацию (стащил из мвс4 интранет патенра). Т.е....

Не работает разграничение прав на основе ролей
Не работает фильтр на роли(indentity 2.0) Использую перед методом , но...

7
IamRain
1376 / 1230 / 387
Регистрация: 02.08.2011
Сообщений: 3,628
12.09.2016, 15:23 2
Ну так написано же:
Цитата Сообщение от ИгорьОК Посмотреть сообщение
Роль '' не найдена.
Вам нужно добавить сначала роли в таблицу с ролями, и только потом уже выдавать эти роли пользователям.
0
ИгорьОК
2 / 2 / 0
Регистрация: 27.10.2013
Сообщений: 45
12.09.2016, 16:00  [ТС] 3
Роли уже добавлены. Прошу обратить внимания что он пытается найти роль ", то есть кавычку.
0
IamRain
1376 / 1230 / 387
Регистрация: 02.08.2011
Сообщений: 3,628
12.09.2016, 16:06 4
Лучший ответ Сообщение было отмечено ИгорьОК как решение

Решение

Цитата Сообщение от ИгорьОК Посмотреть сообщение
Строка 53: Roles.AddUserToRole(model.Name, "Сотрудник");
Не обратил внимания, ятп, вы используете старые Membership классы для добавления ролей?
Вам нужно использовать типы из AspIdentity для добавления роли (UserManager).
Один в один ошибка как у вас.
1
ИгорьОК
2 / 2 / 0
Регистрация: 27.10.2013
Сообщений: 45
12.09.2016, 16:57  [ТС] 5
Спасибо, сделал как в примере, теперь появилась другая ошибка, вот мой изменённый код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
            using (var context = new HDContext())
                if (ModelState.IsValid)
            {
                Users user = new Users { UserName = model.Name, Email = model.Email, PhoneNumber = model.Phone, Post = model.Post, FIO = model.FIO, DepartmentsId = model.DepartmentsId };
                IdentityResult result = await UserManager.CreateAsync(user, model.Password);
 
 
                    var roleStore = new RoleStore<IdentityRole>(context);
                    var roleManager = new RoleManager<IdentityRole>(roleStore);
 
                    var userStore = new UserStore<Users>(context);
                    var userManager = new UserManager<Users>(userStore);
                    userManager.AddToRole(user.Id, "Администратор");
А вот ошибка
Ошибка сервера в приложении '/'.
UserId not found.
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.InvalidOperationException: UserId not found.

Ошибка источника:

Необработанное исключение при выполнении текущего веб-запроса. Информацию о происхождении и месте возникновения исключения можно получить, используя следующую трассировку стека исключений.
0
Lutk
71 / 66 / 29
Регистрация: 28.10.2013
Сообщений: 248
Завершенные тесты: 2
12.09.2016, 17:06 6
UserId not found - UserId не найден.
Создался ли пользователь в БД после вызова CreateAsync?
Что вернула функция CreateAsync (IdentiteResult.Succeeded в частности)?
1
IamRain
1376 / 1230 / 387
Регистрация: 02.08.2011
Сообщений: 3,628
12.09.2016, 17:06 7
Цитата Сообщение от ИгорьОК Посмотреть сообщение
IdentityResult result = await UserManager.CreateAsync(user, model.Password);
Я бы проверял result перед добавлением. Проверьте БД, как уже сказали.
1
ИгорьОК
2 / 2 / 0
Регистрация: 27.10.2013
Сообщений: 45
12.09.2016, 17:16  [ТС] 8
Решил проверить что вернёт IdentiteResult.Succeeded и всё чудесным образом заработало, хотя и до этого все пользователи добавились в бд. Всем огромное спасибо за помощь.
0
12.09.2016, 17:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2016, 17:16

Подключение пользовательского провайдера ролей в MVC5
Здравствуйте уважаемые форумчани! Столкнулся с такой проблемой: Есть таблица...

Создание сессии для авторизации пользователей и разделения ролей
Здравствуйте, необходимо реализовать авторизацию пользователей и разделение...

Установка прав для ролей ASP.NET mvc 5 Identity
Всем привет. Как можно реализовать добавление прав для ролей ? Т.е....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru