En mi aplicación tengo una función de administrador, y este tipo de usuarios pueden cambiar la función de un usuario (cliente, gerente ...). Estoy usando el proveedor integrado de Membresía. Esto es lo que traté de hacer ...ASP .NET MVC: ¿Cómo puedo cambiar el rol de un usuario?
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditRole(string usernameID, FormCollection formValues)
{
var db = new AppDataContext();
var user = db.Users.SingleOrDefault(d => d.UserName == usernameID);
string choosenRole = Request.Form["Roles"];
var tuple = db.UsersInRoles.SingleOrDefault(d => d.UserId == user.UserId);
var roleNameID = db.Roles.SingleOrDefault(d => d.RoleName == choosenRole).RoleId;
tuple.RoleId = roleNameID;
db.SubmitChanges();
return RedirectToAction("Index");
}
Pero, tengo este error ..
Valor del miembro RoleId 'de un objeto de tipo 'UsersInRole' cambiado. Un miembro que define la identidad del objeto no se puede cambiar. Considere agregar un nuevo objeto con nueva identidad y eliminar el existente en su lugar.
Estoy sorprendido. ¿Algunas ideas?
¿está utilizando el proveedor integrado de Membresía o administrando usuarios/roles usted mismo? –
Gracias, lo he editado ya – wallyqs