In meiner App habe ich eine Administratorrolle, und diese Art von Benutzern kann die Rolle eines Benutzers (Client, Manager ...) ändern. Ich verwende den integrierten Mitgliedschaftsanbieter. Hier ist, was ich versuchte zu tun ...ASP.NET MVC: Wie kann ich die Rolle eines Benutzers ändern?
[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");
}
Aber ich habe diesen Fehler ..
Wert des Mitglieds RoleID 'ein Objekt des Typs ‚UsersInRole‘ geändert. Ein Element, das die Identität des Objekts definiert, kann nicht geändert werden. Sie können ein neues Objekt mit einer neuen Identität hinzufügen und stattdessen das vorhandene Objekt löschen.
Ich bin stecken geblieben. Irgendwelche Ideen?
Verwenden Sie den integrierten Mitgliedschaftsanbieter oder verwalten Sie Benutzer/Rollen selbst? –
danke ich habe es schon bearbeitet – wallyqs