Kats2512 Ответов: 1

Добавить пользователя в роль после входа в систему MVC 5


Привет,

Я новичок в MVC и пытаюсь добавить пользователя в роль после входа в систему.

Мне удалось использовать AuthorizeRoles для действий в контроллере, но при попытке добавить пользователя в like в соответствии с приведенным ниже кодом я получаю сообщение об ошибке "пользователь не найден".

System.Web.Security.Roles.AddUsersToRole(new string[] { httpContext.User.Identity.Name }, roles);


Таблица пользователей в моей базе данных выглядит следующим образом:
[Id]
      ,[FirstName]
      ,[LastName]
      ,[EmailAddress]
      ,[UserName]
      ,[Password]
      ,[DateCreated]
      ,[Gender]
      ,[ApplicationId]
      ,[IsAnonymous]
      ,[LastActivityDate]
      ,[UserId]


Я попытался пройти через Имя пользователя, идентификатор пользователя и адрес электронной почты любого пользователя, но он продолжает говорить мне, что пользователь не найден для любого пользователя, который был зарегистрирован.

В моем web. config я использую приведенную ниже конфигурацию в System.Web:
<rolemanager enabled= "true" defaultprovider= "SqlRoleProvider">
& lt;провайдеры>
& lt;очистить>
< добавить имя= "SqlRoleProvider">
заголовком="RolesCon"
имя приложения="/"
тип=система".Веб.Поставщики.DefaultRoleProvider"/>



Кто-нибудь еще сталкивался с подобной проблемой?

Что я уже пробовал:

Поискал в Google, добавил rolemanager в файл web.config.

1 Ответов

Рейтинг:
0

njammy

Привет Я себе это представляю

httpContext.User.Identity

не устанавливается для вошедшего в систему пользователя.
Вам нужно убедиться, что в вашем приложении какой-то код устанавливает его в правильное значение.
Примером может служить использование FormsAuthentication для установки файла cookie и настройки FormsAuthentication в web.config для его работы.


Kats2512

Я сделал это, когда использовал httpContext. User.Identity.Name.ToString () возвращает имя, под которым я вошел в систему.

Kats2512

Спасибо за попытку, но в конце концов я создал свой собственный статический метод, так как решил, что использую пользовательскую базу данных, а не обычную asp.net идентификационная база данных со своими таблицами.

То, что я сделал, теперь работает :)

njammy

Я думаю, все согласятся, что вы должны были упомянуть свою пользовательскую базу данных в первой строке вашего вопроса, поскольку это довольно важно.