Uso del primer enfoque de Asp.Net Identity DataBase

Necesito integrar la última versión de MVC de Asp.Net con una base de datos existente que tiene una columna adicional String Address a la tabla dbo.AspNetUsers

Necesito crear una instancia ApplicationUser que tenga la propiedad Address.

¿Alguna idea de cómo hacerlo?

Una posible solución que funciona para mí, básicamente, puedo integrar Asp.Net Identity User Profiles con una base de datos existente.

Obteniendo las Tablas Asp.Identity:

  • Crear un proyecto MVC con autenticación Cuenta de usuario individual
  • Abra la base de datos que figura en DefaultConnection en Web.config. Se llamará (aspnet- [timestamp] o algo así).
  • Guíe las tablas de la base de datos utilizando SQL Server Management Studio (adjunte la base de datos para mdc).

Alternativamente, use algo como http://identity.codeplex.com/

Integración con su db existente:

  • Inserte las tablas con guiones en la base de datos existente en SQL Server Management Studio.
  • Personalice y agregue relaciones a ApplicationUser (si es necesario).
  • Cree un nuevo proyecto web> MVC> DB First Project> Importar base de datos con EF ….
  • En IdentityModels.cs, cambie ApplicationDbContext: base (“DefaltConnection”) para usar el DbContext de su proyecto.

Ahora tiene Asp.Identity Tables en su db con modelo ER en su aplicación.

Asp.Identity Profile Agregar nuevas propiedades:

  • Habilite las primeras migraciones de bases de datos del código del Entity Framework, solo en VS vaya a Herramientas ‘Consola del administrador de paquetes’,
  • Ejecute el comando “Habilitar migraciones”; Una vez que habilitamos las migraciones de la base de datos, podemos continuar y agregar nuevas propiedades para nuestro perfil de usuario

  • Para agregar nuevas propiedades, modifique el archivo IdentityModels.cs, por ejemplo:


 public class ApplicationUser : IdentityUser { public string FirstName { get; set; } public string LastName { get; set; } public string EmailID { get; set; } } 

Agregar nueva migración

  • Una vez que agreguemos las propiedades, traiga la consola de Package Manager y ejecute el siguiente comando.

    Agregar-Migración “YouMigrationName”

Este comando generará un archivo de script de base de datos, ahora ejecuta el siguiente comando para ejecutar este archivo de script contra la base de datos.

 Update-Database 

Ahora, todas las propiedades nuevas se convertirán en campos de tabla en la misma tabla de base de datos.

Espero que pueda ayudar a otros, si tiene una idea mejor, hágamelo saber.

He tenido éxito en la integración de una base de datos existente a través de Database First con Identity Framework 2.0. He escrito una publicación de blog aquí que utiliza ASP.NET MVC 5, Identity Framework 2.0 y la plantilla SPA de Visual Studio 2013 Update 2 RTM.

Espero que esto ayude a cualquiera en su viaje porque contiene algunos puntos que no figuran en un solo lugar y que tuve que resolver por mi cuenta.

Eche un vistazo a estos proyectos en GitHub:

Que incluye:

  • Plantilla de proyecto de base de datos SQL para ASP.NET Identity 2.0
  • Base de datos de Entity Framework: primer proveedor (es)
  • Código fuente y muestras

enter image description here

public class MyUser: IdentityUser {public virtual MyUserInfo MyUserInfo {get; conjunto; }}

 public class MyUserInfo{ public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } public class MyDbContext : IdentityDbContext //Edited to MyUserInfo { public MyDbContext() : base("DefaultConnection") { } public System.Data.Entity.DbSet MyUserInfo { get; set; } } 

Obteniendo información de perfil

Cuando el usuario UserId sesión, puede mostrar la información del perfil haciendo lo siguiente Obtenga el UserId de UserId actual conectado, para que pueda buscar al usuario en el sistema de identidad ASP.NET

 var currentUserId = User.Identity.GetUserId(); 

Cree una instancia del UserManager en el sistema ASP.Identity para que pueda buscar al usuario en el sistema

 var manager = new UserManager(new UserStore(new MyDbContext())); 

Obtiene el objeto Usuario

 var currentUser = manager.FindById(User.Identity.GetUserId()); 

Obtener la información de perfil sobre el usuario

 currentUser.MyUserInfo.FirstName