Членство mvc 3 Role.AddUserToRole - PullRequest
       37

Членство mvc 3 Role.AddUserToRole

3 голосов
/ 04 октября 2011

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

string[] array = collection["RolesSelected"].Split(',');
        try
        {
            Roles.AddUserToRoles(username, array);

        }

, но когда я отправляю, ничего не происходит.когда я отлаживаю в

 Roles.AddUserToRoles(username, array);

, это показывает правильно.я имею в виду, что имя пользователя правильное, а массив правильный (список проверенных ролей).

если я пытаюсь удалить роль,

Roles.RemoveUserFromRoles(username,array)

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

почему я могу удалить роль, но я не могу добавить роль?

спасибо

ps: извините за мой английский :)1021 * я могу удалить роль для указанного пользователя, используя

Roles.RemoveUserFromRoles(username,array)

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

1 Ответ

1 голос
/ 04 октября 2011

Я подозреваю, что вы столкнулись с ошибкой (System.Configuration.Provider.ProviderException выдается) при попытке добавить пользователя в роль, в которой он / она уже существует. Попробуйте вместо этого:

string[] array = collection["RolesSelected"].Split(',');
foreach (string role in array)
{
   if (!Roles.IsUserInRole(username, role))
   {
      Roles.AddUserToRole(username, role);
   }
}

Тем не менее, если вы хотите, чтобы у пользователя только были роли, указанные в массиве, вы должны сначала удалить все роли, а затем выполнить AddUserToRole вызов.

...