Wie bewegen MVC 5 IdentityModels.cs in einer separaten assembly
Ich Frage mich, wenn jemand lief in das Problem, das ich habe, mit dem Versuch, sich zu bewegen ApplicationUser
in Modellen-Projekt (wo alle anderen Modelle befinden, einschließlich diejenigen im Zusammenhang mit der Benutzer-Tabelle).
Meinem test-MVC-5-Lösung besteht aus einem web-Projekt und zwei-Klassen-Bibliotheken: eine für data access layer (DAL) und andere Modelle. Ich Verweise AspNet.Identität.EntityFramework in allen drei Projekten.
In meine DAL Klasse, die ich umsetzen Repository-Muster und einem UnitOfWork. UnitOfWork erstreckt IdentityDbContext<ApplicationUser>
. ApplicationUser : IdentityUser Modelle Klassenbibliothek.
In meinem web-Projekt UnitOfWork instanziiert wird mit Autofac DI.
Für den regulären Controller, die ich definiert eine Basisklasse erbt von Controller und nimmt IUnitOfWork als parameter im Konstruktor. Alle Controller Erben von meine eigene Basis-controller.
Ich lief in ein problem mit AccountController
. Es hat zwei Konstruktoren: einen mit keinem Parameter, die scheint zu instanziieren ApplicationDbContext
, der andere nimmt UserManager als parameter.
Den parameterlosen Konstruktor gibt mir den meisten Kummer. Ich habe versucht, viele Dinge: machen accountcontroller
Erben von meinem custom-Basis-controller, dann versuchen Sie Erben es von der Controller-Klasse. Am besten gelingt es mir bei meiner Lösung kompilieren, aber wenn ich die app testen und füllen Sie die Benutzer-Registrierung-Formular bekomme ich die Meldung 'Objekt nicht instanziiert werden" - Nachricht. Wenn ich debug sehe ich, dass der zweite Konstruktor in AccountController
aufgerufen wird, aber UserManager
null ist es.
Irgendwelche Ideen? Ich würde wirklich zu schätzen jemand gescheit Eingang in dieses.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf die SimpleSecurity Projekt. Dieses Projekt entkoppelt ASP.NET Identität aus der web-Anwendung und setzt ApplicationUser in einer Baugruppe separat von der web-Anwendung. Dieses Projekt hat auch eine version, die verwendet SimpleMembership. Für ASP.NET Identität suchen Sie in der AspNetIdentity Ordner. Die Montage für die security-Funktionen ist in AspNetIdentity/SimpleSecurity.AspNetIdentity und die Referenz web-Anwendung ist in AspNetIdentity/SimpleSecurity.AspNetIdentity/RefApp.