Der Versuch, Tabellennamen in ASP.NET Identity 2.0 zu ändern

8

Ich möchte die Namen der von ASP.NET Identity 2.0 verwendeten Tabellen ändern. Ich habe verschiedene ähnliche Fragen gesehen, aber nichts, was mein Problem löst. Zum Beispiel diese Art von Lösung: Ссылка scheint von Code First (?) abhängig zu sein. Auf jeden Fall macht die Implementierung von OnModelCreating nichts für mich. Ich habe die AspNetUsers und ähnliche Tabellen grundsätzlich in meine eigenen Namen umbenannt und möchte diese nutzen können. Ich habe einen vorhandenen EF-Kontext (MyContext), den ich verwenden möchte, also änderte ich ihn, um von IdentityDbContext abzuleiten (die t4 Schablone redigierend), und dann in Startup.Auth ich habe:

%Vor%

Aber das Problem tritt auf, wenn ich versuche mich anzumelden, dass ich bekomme "kann Server nicht kontaktieren". Ich stelle mir das vor, weil mein UserStore keine Möglichkeit hat zu wissen, welche Benutzer-Tabellen in meinem Kontext sind. Ich hatte gehofft, dass dies der OnModelCreating-Code sein würde, aber ich bin diesbezüglich unklar. Ich stelle mir vor, dass UserStore immer noch nach einer "AspNetUsers" -Tabelle sucht, obwohl ich nicht weiß, woher diese Namen kommen. Ich bin auch unbehaglich über die Änderung der t4-Vorlage für meinen Kontext - ist das die Art, die ich von IdentityDbContext ableiten soll?

Jede Hilfe wird sehr geschätzt.

    
see sharper 15.07.2014, 02:34
quelle

2 Antworten

17

Wenige Schritte:

  • Installieren Sie das NuGet-Paket: Microsoft.AspNet.Identity.EntityFramework
  • Fügen Sie Ihrer web.config / app.config
  • ein connection string hinzu

Nun müssen Sie Ihre benutzerdefinierte Database Context definieren:

%Vor%

Wie Sie sehen können, habe ich DbModelBuilder verwendet, um alle Entitäten einer neuen Tabelle zuzuordnen.

  • Öffnen Sie die NuGet Package Manager-Konsole
  • Befehl ausführen Enable-Migrations

Es wird ein Ordner Migrations mit der Konfigurationsdatei Configuration.cs erstellt.

Es sollte ungefähr so ​​aussehen:

%Vor%

Ändern Sie im Konstruktor die Eigenschaft AutomaticMigrationsEnabled in true .

  • Öffnen Sie die NuGet Package Manager-Konsole
  • Befehl ausführen Update-Database

Es sollte das Skript ausführen, um die neuen Tabellen zu erstellen.

Sie können Ihre Entitäten (und IDs) anpassen, indem Sie eine benutzerdefinierte Klasse für jede definierte Schnittstelle erstellen.

%Vor%

Da Sie Owin verwenden, können Sie Ihren UserStore definieren:

%Vor%

und Ihre UserManager-Implementierung:

%Vor%

Und Ihr Owin.Startup sollte etwa so aussehen:

%Vor%

Wenn Sie sich eine benutzerdefinierte Implementierung ansehen möchten, können Sie mein GitHub-Repository überprüfen mit einer einfachen Arbeitslösung auf ASP.NET MVC.

UPDATE:

Es gibt ein anderes Projekt in dieser Lösung mit einem minimalen Setup; Im Grunde müssen Sie nur Ihren Kontext definieren ( IdentityDbContext ), wenn Sie nur Ihre Tabellen umbenennen möchten.

Das Projekt befindet sich hier .

    
LeftyX 15.07.2014, 17:08
quelle
0

Identität 2 mit Entity Framework setzt Code First voraus. Dieses Projekt scheint zu tun, was ich brauche: Ссылка

    
see sharper 18.07.2014 03:36
quelle