¿Agregar el nombre y el apellido del usuario a una identidad de ASP.NET 2?

Cambié para usar la nueva Identidad de ASP.NET 2. En realidad estoy usando las Muestras de identidad de Microsoft ASP.NET 2.0.0-beta2.

¿Alguien puede decirme dónde y cómo puedo modificar el código para que almacene el nombre y apellido de un usuario junto con los detalles del usuario? ¿Sería esto ahora parte de una reclamación y, de ser así, cómo podría agregarlo?

Supongo que necesitaría agregar esto aquí, que es el método de registro en el controlador de cuenta:

if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { var code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking this link: link"); ViewBag.Link = callbackUrl; return View("DisplayEmail"); } AddErrors(result); } 

Además, si agregué los nombres y apellidos, ¿dónde se almacena esto en la base de datos? ¿Necesito crear una columna adicional en una tabla para esta información?

Tendrá que agregarlo a su clase ApplicationUser , así que si usa muestras de identidad, imagino que tiene algo así en sus IdentityModels.cs

 public class ApplicationUser : IdentityUser { public async Task GenerateUserIdentityAsync(UserManager manager) { // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); // Add custom user claims here return userIdentity; } } 

después de agregar nombres y apellidos se vería así:

 public class ApplicationUser : IdentityUser { public async Task GenerateUserIdentityAsync(UserManager manager) { // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); // Add custom user claims here return userIdentity; } public string FirstName { get; set; } public string LastName { get; set; } } 

Luego, cuando registra un usuario, debe agregarlos a la lista ahora que están definidos en la clase ApplicationUser

 var user = new ApplicationUser { UserName = model.Email, Email = model.Email, FirstName = "Jack", LastName = "Daniels" }; 

Los nombres y apellidos terminarán en la tabla de AspNetUsers después de realizar las migraciones

Me doy cuenta de que esta publicación tiene algunos años, pero con ASP.NET Core ganando terreno terminé aquí con una pregunta similar. La respuesta aceptada recomienda que actualice su modelo de datos de usuario para capturar estos datos. No creo que sea una mala recomendación, pero de mis afirmaciones de investigación es la forma correcta de almacenar esta información. Consulte ¿Qué es las reclamaciones en ASP .NET Identity y User.Identity.Name? Nombre completo mvc5 . Este último es respondido por alguien del equipo de identidad de ASP.NET en Microsoft.

Aquí hay un ejemplo de código simple que muestra cómo agregar esas reclamaciones usando la identidad de ASP.NET:

 var claimsToAdd = new List() { new Claim(ClaimTypes.GivenName, firstName), new Claim(ClaimTypes.Surname, lastName) }; var addClaimsResult = await _userManager.AddClaimsAsync(user, claimsToAdd);