Ich verwende ASP.NET Identity 2
in einem MVC 5
Projekt und ich möchte Student
Daten mit UserManager.Update()
Methode aktualisieren. Da ich jedoch von ApplicationUser
Klasse erben, muss ich Student
zu ApplicationUser
zuordnen, bevor Update-Methode aufgerufen wird. Wenn ich andererseits den Ansatz nutze, den ich auch für die Erstellung eines neuen Schülers verwendet habe, liegt ein Fehler aufgrund von Nebenläufigkeit vor, da ich eine neue Instanz anstelle einer Aktualisierung erstelle. Da mir langweilig ist, das Problem mit AutoMapper
zu lösen, brauche ich eine stabile Lösung, um das Problem ohne AutoMapper
zu lösen. Könnten Sie mir bitte erklären, wie Sie dieses Problem lösen können? Ich übergebe die StudentViewModel
an die Update-Methode im Controller und dann muss ich es auf Student und dann an die UserManager.Update()
Methode als ApplicationUser
übergeben. Auf der anderen Seite frage ich mich, ob ich das Passwort auf der Controller-Stufe abrufen und senden sollte, anstatt es aus Sicherheitsgründen an View zu übergeben. Könnten Sie mich auch über dieses Problem informieren (während des Benutzerupdates aktualisiere ich das Passwort nicht und ich muss das Passwort des Benutzers in der Datenbank behalten). Jede Hilfe wäre willkommen.Benutzer von UserManager.Update() in ASP.NET Identity 2 aktualisieren
Entitätsklassen:
public class ApplicationUser : IdentityUser<int, ApplicationUserLogin,
ApplicationUserRole, ApplicationUserClaim>, IUser<int>
{
public string Name { get; set; }
public string Surname { get; set; }
//code omitted for brevity
}
public class Student: ApplicationUser
{
public int? Number { get; set; }
}
Controller:
[HttpPost]
[ValidateAntiForgeryToken]
public JsonResult Update([Bind(Exclude = null)] StudentViewModel model)
{
if (ModelState.IsValid)
{
ApplicationUser user = UserManager.FindById(model.Id);
user = new Student
{
Name = model.Name,
Surname = model.Surname,
UserName = model.UserName,
Email = model.Email,
PhoneNumber = model.PhoneNumber,
Number = model.Number, //custom property
PasswordHash = checkUser.PasswordHash
};
UserManager.Update(user);
}
}
helfen Sind Sie benutzerdefinierte Tabelle mit Student und mit Microsoft Identity zum Einfügen von Daten in Schülertisch ?? –
Nein, ich benutze nur die gleiche Tabelle (** AspNetUsers **) und meine Student-Entität erbt von ApplicationUser. Gibt es eine klügere Lösung als die Antwort? –
Eigentlich habe ich mit diesem Szenario zu kämpfen: http: //stackoverflow.com/questions/39304464/how-to-save-new-record-with-hashed-password-in-my-custom-table-instead-of-aspnet –