Principales respuestas
Asignar roles al crear un usuario

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
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"); } }
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 -
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"); } }