asp.net Identität 2.0 Einheit nicht auflöst default user speichern
bekomme ich folgende exception beim Versuch, konfigurieren Sie die Einheit mit Einheit.Mvc5 mit einem MVC 5-Anwendung mithilfe von Identity 2.0 und Identity 2.0 " - Beispiele beschränken. ich habe gelesen, das SO Konfigurieren der Einheit für DI ASP.NET Identität und ich bin mir immer noch nicht klar, was mir fehlt. Was mache ich hier falsch?
Des aktuellen Typs, System.Daten.Common.DbConnection, ist eine abstrakte Klasse und kann nicht gebaut werden. Sind Sie fehlt ein Typ-mapping?
[ResolutionFailedException: Auflösung der Abhängigkeit fehlgeschlagen, type = "myApp.Web.Controller.AccountController", name = "(none)".
Ausnahme ist aufgetreten während: während der Lösung.
Ausnahme: InvalidOperationException - Der aktuelle type, System.Daten.Common.DbConnection, ist eine abstrakte Klasse und kann nicht gebaut werden. Sind Sie fehlt ein Typ-mapping?
In der Zeit der Ausnahme, wurde der container:
Lösung Anwendung.Web.Controller.AccountController,(keine)
Lösung parameter "userManager" von Konstruktor-Anwendung.Web.Controller.AccountController(myApp.Web.Modelle.ApplicationUserManager userManager)
Lösung Anwendung.Web.Modelle.ApplicationUserManager,(keine)
Lösen Sie den parameter "speichern" - Konstruktor myApp.Web.Models.ApplicationUserManager(Microsoft.AspNet.Identity.IUserStore1[[myApp.Web.DAL.Profiles.ApplicationUser, myApp.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] store)
1[myApp.Web.DAL.Profiles.ApplicationUser],(none) (zugeordnet von Microsoft.AspNet.Identität.IUserStore
Resolving Microsoft.AspNet.Identity.EntityFramework.UserStore1[myApp.Web.DAL.Profiles.ApplicationUser], (none))
1[[myApp.Web.DAL.Profile.ApplicationUser Anwendung.Web, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]](System.Daten.Entität.DbContext context)
Resolving parameter "context" of constructor Microsoft.AspNet.Identity.EntityFramework.UserStore
Resolving-System.Daten.Entität.DbContext,(keine)
Lösung parameter "existingConnection" der Konstruktor System.Daten.Entität.DbContext(System.Daten.Common.DbConnection existingConnection, System.Daten.Entität.Infrastruktur.DbCompiledModel Modell, System.Boolean contextOwnsConnection)
Resolving-System.Daten.Common.DbConnection,(keine)
Konto-controller, ich habe es geändert
public AccountController(ApplicationUserManager userManager)
{
_userManager = userManager;
}
private ApplicationUserManager _userManager;
Container ich habe mich registriert,
container.RegisterType<ApplicationUserManager>(new HierarchicalLifetimeManager());
container.RegisterType<IUserStore<ApplicationUser>, UserStore<ApplicationUser>>(new HierarchicalLifetimeManager());
InformationsquelleAutor Michael | 2014-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich sehe, Sie haben eine Lösung gefunden, aber ich glaube, ich habe ein einfacheres ein.
Bist du mit Entity Framework, richtig? So dass Ihre Anwendung fast hat sicherlich etwas mit Vererbung aus
DbContext
(wahrscheinlich Erben vonIdentityContext<TUser>
erbt, die wiederum vonDbContext
in diesem Fall). In der Standard-Vorlage, es ist ApplicationDbContext.In Ihrer Zusammensetzung root-Sie können fügen Sie einfach
container.RegisterType<DbContext, ApplicationDbContext>(new HierarchicalLifetimeManager());
(natürlich Bearbeiten Sie diese, wenn Ihnen nicht genannt ApplicationDbContext).Recht, ja. Ich bin mir ziemlich sicher, die Meldung, dass es andernfalls zu beheben DbContext, der Klassen wie der UserManager wollen eine Kopie. Sie könnten auch einen InjectionFactory, wenn Sie so geneigt sind.
endlich Zeit gehabt, dieses zu versuchen. scheint zu funktionieren. danke.
ist es nicht besser, verwenden PerRequestLifetimeManager statt HierarchicalLifetimeManager ?
Ja, wahrscheinlich, wenn Sie es installiert haben, in Ihrem Projekt. Ich war kleben mit dem, was in der Probe. Es ist auch möglich, etwas ähnliches zu tun mit HLM und untergeordnete Container, glaube ich.
InformationsquelleAutor Casey
ok ich habe es herausgefunden. ich denke.
ich habe meine eigenen userstore Klasse und es angeschlossen.
das war etwas hilfreich. http://odetocode.com/blogs/scott/archive/2014/01/20/implementing-asp-net-identity.aspx
Einheit config
Benutzer-manager
Benutzer speichern
InformationsquelleAutor Michael