none
Asignar roles al crear un usuario RRS feed

  • Pregunta

  • Muy buenas,

    me pregunto si alguien sabe como asignar roles a la vez que estoy creando un nuevo usuario.

    He estado buscando y todo lo que encuentro me permite asignar un único rol cuando estoy creando un usuario nuevo, pero no varios roles.

    ¿Alguien ha hecho algo parecido o se le ocurre como poder hacerlo?

    Gracias de antemano

    viernes, 12 de febrero de 2016 17:21

Respuestas

  • Sí. Uso membershio que no lo habia dicho.

    Gracias Leandro. Me has abierto la mente.

    Bueno pues al final lo he hecho de la siguiente manera:

    Tengo una funcion en la que almaceno los roles en un ViewBag

    private void TraerRoles()
    {
         ApplicationDbContext context = new ApplicationDbContext();
         ViewBag.RoleId = new SelectList(context.Roles, "Name", "Name");
    }

    En mi vista Register muestro los roles:

    @foreach (var item in (SelectList)ViewBag.RoleId)
    {
         <input type="checkbox" name="SelectedRoles" value="@item.Value" class="checkbox-inline" />
         @Html.Label(item.Value, new { @class = "control-label" })
    }

    Y en el controlador Register:

    if (selectedRoles != null)
    {
         var resultRoles = await UserManager.AddToRolesAsync(user.Id, selectedRoles);
         if (!resultRoles.Succeeded)
         {
              ViewBag.errorMessage = result.Errors.First();
              return View("Error");
         }
    }


    • Editado .damorcor viernes, 12 de febrero de 2016 22:33
    • Marcado como respuesta .damorcor domingo, 14 de febrero de 2016 22:25
    viernes, 12 de febrero de 2016 22:31

Todas las respuestas

  • hola

    entiendo que usas asp.net membership, no ?

    Podrias invocar tantas veces como sea necesario la funcionalidad que crea un rol

    si tienes 5 roles que asignar realizar un loop por cada rol he invocas la funciona que asigna al usuario al mismo


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 12 de febrero de 2016 17:41
  • Sí. Uso membershio que no lo habia dicho.

    Gracias Leandro. Me has abierto la mente.

    Bueno pues al final lo he hecho de la siguiente manera:

    Tengo una funcion en la que almaceno los roles en un ViewBag

    private void TraerRoles()
    {
         ApplicationDbContext context = new ApplicationDbContext();
         ViewBag.RoleId = new SelectList(context.Roles, "Name", "Name");
    }

    En mi vista Register muestro los roles:

    @foreach (var item in (SelectList)ViewBag.RoleId)
    {
         <input type="checkbox" name="SelectedRoles" value="@item.Value" class="checkbox-inline" />
         @Html.Label(item.Value, new { @class = "control-label" })
    }

    Y en el controlador Register:

    if (selectedRoles != null)
    {
         var resultRoles = await UserManager.AddToRolesAsync(user.Id, selectedRoles);
         if (!resultRoles.Succeeded)
         {
              ViewBag.errorMessage = result.Errors.First();
              return View("Error");
         }
    }


    • Editado .damorcor viernes, 12 de febrero de 2016 22:33
    • Marcado como respuesta .damorcor domingo, 14 de febrero de 2016 22:25
    viernes, 12 de febrero de 2016 22:31