La mise à jour de l'utilisateur par UserManager.Mise à jour() dans ASP.NET Identité 2

- Je utiliser ASP.NET Identity 2 dans un MVC 5 projet et je veux mettre à jour Student données à l'aide de UserManager.Update() méthode. Cependant, comme je l'ai hériter de ApplicationUser classe, j'ai besoin de la carte Student à ApplicationUser avant d'appeler la méthode de mise à jour. D'autre part, lors de l'utilisation de l'approche que j'ai aussi utilisé pour la création de nouveaux Étudiants, il y a une erreur en raison de la simultanéité comme je créer une nouvelle instance plutôt que de les mettre à jour. Comme je m'ennuie à résoudre le problème en utilisant AutoMapper, j'ai besoin d'un stable correctif pour résoudre le problème sans AutoMapper. Pourriez-vous svp me préciser comment résoudre ce problème? Je passe le StudentViewModel à la méthode de mise à Jour dans le Contrôleur et puis j'ai besoin de la carte d'Étudiant, puis de les transmettre à l' UserManager.Update() méthode ApplicationUser. D'autre part je me demande si je devrais récupérer et d'envoyer le mot de passe du Contrôleur de scène au lieu de passer à la Vue pour le problème de sécurité? Pourriez-vous également me renseigner sur ce problème (en cours de mise à Jour d'Utilisateur je n'ai pas de mise à jour de mot de passe et j'ai garder le mot de passe utilisateur dans la base de données). Toute aide serait appréciée.

Les Classes D'Entité:

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

Contrôleur:

[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);
    }
}
Êtes-vous à l'aide de tableau personnalisé de l'étudiant et à l'aide de microsoft identité pour l'insertion de données dans la table des étudiants??
Non, je viens d'utiliser le même tableau (AspNetUsers) et mon Élève entité hérite de ApplicationUser. Est-il une solution plus intelligente que la réponse?
En fait, je suis aux prises avec ce scénario:stackoverflow.com/questions/39304464/...

OriginalL'auteur Willys | 2016-09-17