Si usted tiene una base de datos existente, y si desea incluir Asp.NET Identidad tablas a él, puede enfrentar con este error. También en el begginning, usted no puede saber cómo integrar [AspNetRoles], [AspNetUserClaims], [AspNetUsers], [AspNetUserLogins] tablas en su base de datos existente. Aunque hay una gran cantidad de recursos sobre este tema, esta respuesta es una de las más cortas de ellos. Puede que desee utilizar la Base de datos-Primer acercamiento en el Marco de la Entidad junto a Asp.NET la Identidad característica de Asp.NET MVC. Este es un breve tutorial para dummies. Lo siento por mi inglés si es mala.

InformationsquelleAutor Alp | 2016-06-26

4 Comentarios

  1. 13

    Aquí es el más corto de la integración de Asp.NET la Identidad de las tablas de su base de datos existente.

    1) Abrir proyecto nuevo o existente proyecto en Visual Studio (2015 o 2013). Abra su el Explorador de servidores y abrir su DefaultConnection.Encontrar su Identidad tablas. (En el WebConfig archivo, localDB connectionstring debe ser activa. Y en su otra Base de datos de la cadena de conexión no debe ser activo). Haga doble Clic en el [AspNetRoles], [AspNetUserClaims], [AspNetUsers], [AspNetUserLogins] tablas. Y copiar todos sus códigos de SQL.

    2) Abrir la base de datos existente en el SQL Server Management Studio, haga clic en la base de datos y haga clic en Nueva Consulta pasado aquí lo que ha copiado en parte 1ª. Usted va a pasado algo como que:

    CREATE TABLE [dbo].[AspNetRoles] (
    [Id]   NVARCHAR (128) NOT NULL,
    [Name] NVARCHAR (256) NOT NULL,
    CONSTRAINT [PK_dbo.AspNetRoles] PRIMARY KEY CLUSTERED ([Id] ASC)
    );
    GO
    CREATE UNIQUE NONCLUSTERED INDEX [RoleNameIndex]
    ON [dbo].[AspNetRoles]([Name] ASC);
    CREATE TABLE [dbo].[AspNetUsers] (
    [Id]                   NVARCHAR (128) NOT NULL,
    [Email]                NVARCHAR (256) NULL,
    [EmailConfirmed]       BIT            NOT NULL,
    [PasswordHash]         NVARCHAR (MAX) NULL,
    [SecurityStamp]        NVARCHAR (MAX) NULL,
    [PhoneNumber]          NVARCHAR (MAX) NULL,
    [PhoneNumberConfirmed] BIT            NOT NULL,
    [TwoFactorEnabled]     BIT            NOT NULL,
    [LockoutEndDateUtc]    DATETIME       NULL,
    [LockoutEnabled]       BIT            NOT NULL,
    [AccessFailedCount]    INT            NOT NULL,
    [UserName]             NVARCHAR (256) NOT NULL,
    CONSTRAINT [PK_dbo.AspNetUsers] PRIMARY KEY CLUSTERED ([Id] ASC)
    );
    GO
    CREATE UNIQUE NONCLUSTERED INDEX [UserNameIndex]
    ON [dbo].[AspNetUsers]([UserName] ASC);
    CREATE TABLE [dbo].[AspNetUserRoles] (
    [UserId] NVARCHAR (128) NOT NULL,
    [RoleId] NVARCHAR (128) NOT NULL,
    CONSTRAINT [PK_dbo.AspNetUserRoles] PRIMARY KEY CLUSTERED ([UserId] ASC, [RoleId] ASC),
    CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [dbo].[AspNetRoles] ([Id]) ON DELETE CASCADE,
    CONSTRAINT [FK_dbo.AspNetUserRoles_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
    );
    GO
    CREATE NONCLUSTERED INDEX [IX_UserId]
    ON [dbo].[AspNetUserRoles]([UserId] ASC);
    GO
    CREATE NONCLUSTERED INDEX [IX_RoleId]
    ON [dbo].[AspNetUserRoles]([RoleId] ASC);
    CREATE TABLE [dbo].[AspNetUserLogins] (
    [LoginProvider] NVARCHAR (128) NOT NULL,
    [ProviderKey]   NVARCHAR (128) NOT NULL,
    [UserId]        NVARCHAR (128) NOT NULL,
    CONSTRAINT [PK_dbo.AspNetUserLogins] PRIMARY KEY CLUSTERED ([LoginProvider] ASC, [ProviderKey] ASC, [UserId] ASC),
    CONSTRAINT [FK_dbo.AspNetUserLogins_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
    );
    GO
    CREATE NONCLUSTERED INDEX [IX_UserId]
    ON [dbo].[AspNetUserLogins]([UserId] ASC);
    CREATE TABLE [dbo].[AspNetUserClaims] (
    [Id]         INT            IDENTITY (1, 1) NOT NULL,
    [UserId]     NVARCHAR (128) NOT NULL,
    [ClaimType]  NVARCHAR (MAX) NULL,
    [ClaimValue] NVARCHAR (MAX) NULL,
    CONSTRAINT [PK_dbo.AspNetUserClaims] PRIMARY KEY CLUSTERED ([Id] ASC),
    CONSTRAINT [FK_dbo.AspNetUserClaims_dbo.AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [dbo].[AspNetUsers] ([Id]) ON DELETE CASCADE
    );
    GO
    CREATE NONCLUSTERED INDEX [IX_UserId]
    ON [dbo].[AspNetUserClaims]([UserId] ASC);

    Si usted se olvida de las líneas que a partir de IR, que se verá exactamente el error que está en el Título de esta pregunta. Ejecutar esta consulta y esperar con éxito los objetivos de creación de tablas. Su base de datos existente está ahora listo para características de Identidad de Asp.NET MVC 5.

    3) Abrir WebConfig en el Visual Studio. Vamos a cambiar connectionstring aquí. Escribe:

     <add name="DefaultConnection" connectionString="Data Source=YOUR_SERVER_NAME;Initial Catalog=YOUR_DATABASE_NAME;Persist Security Info=True;User ID=YOUR_USER_ID;Password=YOUR_PASSWORD.;MultipleActiveResultSets=True;Application Name=EntityFramework"  providerName="System.Data.SqlClient"/>

    Lugar de localDB cadena de conexión. Que es esta:

     <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-....mdf;Initial Catalog=aspnet-...;Integrated Security=True" providerName="System.Data.SqlClient" />

    Eso es todo lo que necesita hacer. Ejecute el proyecto y Registro. Usted puede ver sus nuevos datos de usuario en AspNetUsers tabla, en la base de datos existente.

    • Hola @Alparslan , no hay otra manera de hacer esto. Cambiar la cadena de conexión como lo hizo en la sección 3. A continuación, hacer un registro de usuario en la página web. Verá el 5 de las tablas creadas.
    • Gracias por tu respuesta. Vi tu solución en algunas de las preguntas aquí. Pero esto no funciona en mi situación. O tal vez hice algo mal. Tengo algunos errores. En lugar de investigar a estos errores en el internet, y Si algunas personas se enfrentan con los errores, que pueden utilizar esta solución.
    • Ok entiendo.
    • Usted salvó mi vida. Tengo, por alguna razón, 2 de DBContext clases (IdentityContext & Contexto Personalizado). Se me cayó mi db cuando el contexto personalizado cambiado. Identidad Contexto no recrear las tablas. Meh
  2. 4

    En Visual Studio, vaya a «Herramientas -> NuGet Package Manager -> Consola del Administrador de Paquetes» y en la ventana de consola (dentro de Visual Studio) ejecutar «de la Actualización de la Base de datos» comando

    • Esto no es del todo correcto. Por este artículo enlace tuve problema 3 comandos en PS : Enable-Migraciones Añadir a la Migración Init-Actualización de la Base de datos
  3. 3

    Voy por el mismo problema.
    algunos de usuario de tiempo de crear personalizar la clase de pertenencia por lo tanto asp.net no crear AspNetUsers tabla

    ejemplo :

    public class Member : IdentityUser
    {
    Public int MemberID { get; set; }
    public string Name { get; set; }
    public string Family { get; set; }
    public string Password { get; set; }
    }  

    en este escenario ASP.NET crear Miembro de la mesa y cuando el usuario desea autenticar,ASP.NET búsqueda de AspNetUsers y no encontrar esta tabla.
    este problema se resuelva con agregar TableAttribute en comenzar de clase personalizada

    [Table("AspNetUsers")]
    public class Member : IdentityUser
    {
    Public int MemberID { get; set; }
    public string Name { get; set; }
    public string Family { get; set; }
    public string Password { get; set; }
    }
  4. 0

    Me he encontrado con el mismo problema, he Aquí yo te olvides de llamar a EnsureCreated().
    Después de llamar a este método se va a crear todas las tablas requeridas por la Identidad.

    De inicio.cs

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider serviceProvider)
    {
    ...
    //Make sure we have the database
    serviceProvider.GetService<ApplicationDbContext>().Database.EnsureCreated();
    }
    • Esto sólo se aplica cuando usted tiene Data -> Migrations en su solución. Si has eliminado las migraciones de archivos como los que tengo, esto no hará nada.

Dejar respuesta

Please enter your comment!
Please enter your name here