2012-01-16 2 views
1

Я создаю приложение MVC3, где пользователь может быть либо администратором, либо элементом ввода данных, поэтому мне нужно использовать роль в аутентификации пользователя, которую предлагает MVC. Так что в моей Регистрации форме я добавилСоздание пользовательских ролей mvc3

    <%= 
          Html.DropDownList("RoleName", new SelectListItem[]{ 
          new SelectListItem{ Text= "Admin", Value="admin"}, 
          new SelectListItem{ Text= "Data Entry", Value="data"} 
        }) %> 

И я изменил контроллер регистра следующим образом:

if (createStatus == MembershipCreateStatus.Success) 
       { 
        Roles.AddUserToRole(model.UserName, "RoleName"); 
        FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */); 
        return RedirectToAction("Index", "Home"); 
       } 

Теперь, когда я зарегистрировать я получаю следующее сообщение об ошибке: роль «» не было найдено.

Спасибо ...

+2

Поскольку у вас нет роли под названием «RoleName». Вам нужно написать свой метод для извлечения ролей в раскрывающемся списке. – keni

ответ

0

Посмотрите на определение для Roles.AddUserToRole() метода here. У вас есть hardcoding «RoleName» для второго параметра, для которого предполагается роль пользователя.

Что вы хотите сделать, это получить выбранное значение из вашего DropDownList и использовать эту строку в вызове метода Roles.AddUserToRole().

+0

Да, это то, что я делал неправильно. Я принимал рольName как имя выпадающего списка, не разбирая его сначала как строку ... –

+1

@CharbelWakim Рад, что вы получили его! –

Смежные вопросы