J'ai une application mvc asp.net qui utilise le contrôleur de compte standard pour gérer auth. Le client m'a demandé d'ajouter de nouveaux champs comme e-mail, ville, âge de création de compte. Quelle serait la meilleure façon d'étendre le contrôleur de compte/modèle? Devrais-je modifier la table aspnet_users ou devrais-je créer une nouvelle table avec les nouveaux champs? Est-ce une bonne façon d'ajouter de nouveaux champs à AccountFormViewModel?asp.net mvc: comment étendre le contrôleur de compte?
Répondre
Je suppose que vous avez deux options:
1) Création d'custom membership provider.
2) En utilisant la fonction interne profile membership provider
Quoi qu'il en soit vous devez implémenter/étendre la AccountController et ViewModel que vous obtenez avec un nouveau projet MVC. Si vous choisissez la première option, vous pouvez ajouter vos champs à la table aspenet_users. Si vous choisissez la deuxième option, vous utilisez la table de profil que le framework vous demande de créer.
Si vous voulez une "super intégration" de vos champs, vous pouvez envisager d'étendre les interfaces IIdentity et IPrincipal. Regardez this answer pour plus d'informations.
Hope it helps
Voici le lien vers poste similaire pour étendre le contrôleur de compte.
D'abord, vous avez modifier le RegisterModel AcountModels, et ajouter de nouvelles fileds
public class RegisterModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}
en AcountController vous modifiez l'action Registre
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model)
{
if (ModelState.IsValid)
{
// Attempt to register the user
try
{
WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
WebSecurity.Login(model.UserName, model.Password);
using (var context = new ECDB())
{
var username = model.UserName;
var user = context.UserProfiles.SingleOrDefault(u => u.UserName == username);
user.FirstName = model.FirstName;
user.LastName = model.LastName;
user.Email = model.Email;
context.SaveChanges();
}
return RedirectToAction("Index", "Home");
}
catch (MembershipCreateUserException e)
{
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
- 1. ASP.NET MVC 2 - Contrôleur de compte introuvable
- 2. asp.net modèle de compte mvc
- 3. Étendre ASP.NET MVC avec ViewResult Propriétés personnalisées
- 4. ASP.Net MVC Route vers le compte
- 5. tester le contrôleur dans asp.net mvc
- 6. asp.net mvc contrôleur générique
- 7. Asp.net sous-contrôleur mvc
- 8. ASP.NET MVC + LiveID -> devrais-je utiliser le fournisseur d'adhésion et le contrôleur de compte?
- 9. asp.net mvc 2 compte de service personnalisé
- 10. Étendre les modèles HiddenFor dans ASP.NET MVC
- 11. ASP.Net MVC 3 Comment mettre à jour le compte utilisateur?
- 12. étendre contrôleur dans zend contrôleur
- 13. Certaines erreurs dans le contrôleur (asp.net mvc)
- 14. ASP.NET MVC 2 Preview 2 - Étendre LabelExtensions.LabelFor
- 15. Le contrôleur ASP.Net MVC n'est pas appelé
- 16. contrôleur Asp.Net Mvc constructeur statique
- 17. Comment tester ce simple contrôleur ASP.NET MVC
- 18. ASP.Net MVC ViewUserControl avec le contrôleur utilisant MVC 1.0
- 19. Zend Framework étendre le contrôleur de module
- 20. asp.net mvc action résultat et compte question
- 21. ASP.NET MVC 4 héritage contrôleur
- 22. Contrôleur asynchrone dans ASP.NET MVC
- 23. ASP.Net MVC 3 Contrôleur Inheritence
- 24. Comment structurer le contrôleur pour trier plusieurs critères asp.net mvc
- 25. CodeIgniter réutilisons/étendre contrôleur
- 26. asp.net: étendre dynamiquement le contenu
- 27. Comment le contrôleur détermine quelle vue utiliser dans asp.net mvc
- 28. Compte à rebours en asp.net mvc 3
- 29. propriété du modèle compte 0 dans le contrôleur asp.net MVC3
- 30. dictionnaire de passe au contrôleur asp.net mvc