Also im Grunde nach dem Lernen wie man OpenAuth ändert, um DefaultConnection nicht zu benutzen in .NET 4.5 habe ich mit 4.5.1 fortgefahren, was diese Lerninhalte widerlegt. Die Aufgaben von AuthConfig.cs befinden sich jetzt in Startup.Auth.cs. Die statischen Methoden von OpenAuth wurden entfernt und daher kann ich den Standardwert von OpenAuth.ConnectionString nicht mehr direkt ändern.
Was ist die beste Vorgehensweise zum Ändern der Verbindungszeichenfolge / Datenbank der Mitgliedschaft in .NET 4.5.1?
Funktioniert mit Microsoft.AspNet.Identity.EntityFramework 1.0.0-rc1
Ändern Sie im parameterlosen Konstruktor für AccountController die Zeile
%Vor%bis
%Vor% und du bist gut zu gehen.
Funktioniert mit Microsoft.AspNet.Identity.EntityFramework 1.0.0
Ähnlich wie bei Release-Kandidaten, aber wir machen das an einem anderen Ort. Öffnen Sie IdentityModels.cs
, das als Teil der VS-Vorlage erstellt wurde, und fügen Sie der Klasse ApplicationDbContext
den folgenden Konstruktor hinzu:
und Sie können jetzt den parameterlosen Konstruktor in AccountController
von
bis
%Vor%und dein erledigt.
Ich habe den von Ihnen vorgeschlagenen Ansatz verfolgt und es hat für mich funktioniert. Es gab jedoch nur wenige Dinge, die hauptsächlich syntaktisch waren und Namensprobleme hatten, die zufällig anders waren. Ich denke, diese Unterschiede sind wahrscheinlich auf die verschiedenen Versionen von Visual Studios zurückzuführen, die wir verwendet haben (und nicht auf .NET - meine Version ist Release eins mit .NET 4.5.1). Ich fahre mit einer Beschreibung meiner spezifischen Lösung fort.
Mein Ziel war es, einen einzigen DB-Kontext zu haben, mit dem ich sowohl auf Benutzer- oder Identitätsdaten als auch auf meine benutzerdefinierten Anwendungsdaten zugreifen kann. Um dies zu erreichen, habe ich die Klasse ApplicationDbContext
vollständig gelöscht, die beim Erstellen eines neuen Projekts automatisch für Sie erstellt wird.
Dann habe ich eine neue Klasse MyDbContext
erstellt.
Die Felder Roles
, Users
, UserClaims
, UserLogins
, UserRoles
sind wie für die Mitgliederverwaltung erforderlich. In meinem Fall haben ihre Typen jedoch unterschiedliche Namen ( ApplicationUser
anstelle von User
, IdentityUserClaim
anstelle von UserClaim
usw.). Ich vermute, das war der Grund, warum Antevirus das Problem "Benutzer konnte nicht gefunden werden" hatte.
Auch, wie wir in meinem Fall sehen, gibt es 5 solche Felder statt 8. Wahrscheinlich liegt das an den verschiedenen Versionen von Visual Studio.
Die letzte Änderung, die ich vorgenommen habe, war in der Klasse AccountController
und spiegelt die Verwendung des neuen Kontexts MyDbContext
wider. Hier habe ich eine Instanz von MyDbContext
anstelle von ApplicationDbContext
Vorher
%Vor%Nach
%Vor%Tags und Links c# asp.net visual-studio-2013