Erweiterung IdentityUser mit EF Code-first-auf VS 2013 SPA AccountController

Mir und einem Klassenkameraden arbeiten auf einer Phonegap-Anwendung über eine Web-API als unser backend. Zuvor hatten wir einen Prototyp mit dem alten Mitgliedschaft Funktion in einem MVC4 template.

Haben wir gefunden, ein paar ziemlich gute tutorials zu erweitern, die IdentityUser auf einem normalen mvc-controller. Wir haben es geschafft, zu bekommen, um zu arbeiten, sondern gehen über die API-accountcontroller, der kommt mit dem VS 2013 SPA-Vorlage, die wir haben nicht geschafft es zum laufen zu bringen. Zur Vereinfachung unserer problem hier ist im Grunde, was wir tun wollen.

Können sagen, wir haben einen Film Klasse wie folgt aus:

public class Movie
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ApplicationUser User { get; set; }
}

Habe ich die ApplicationUser wie diese(aus dem VS 2013 MVC-Vorlage mit individuellen Konto):

public class ApplicationUser : IdentityUser
{
    public string DisplayName { get; set; }
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection")
    {
    }

    public DbSet<Movie> Films { get; set; }
}

Habe ich diese Zeile in Application_Start auf global.asax:

Database.SetInitializer<ApplicationDbContext>(new AppDbInit());

Den AppDbInit Klasse:

public class AppDbInit : DropCreateDatabaseAlways<ApplicationDbContext>
{

}

Änderte ich die UserManagerFactory in Startup.Auth.cs:

UserManagerFactory = () => new UserManager<ApplicationUser>(new UserStore<ApplicationUser>());

public static Func<UserManager<ApplicationUser>> UserManagerFactory { get; set; }

In der AccountController.cs-Datei habe ich ersetzt alle vorkommen von IdentityUser mit ApplicationUser statt. Sobald das erledigt war, begann ich um Fehler, die durch die class-Dateien in Microsoft.AspNet.Identität.EntityFramework, die IdentityUser Klasse sagen, es kann nicht konvertieren IdentityUser zu ApplicationUser.
Eine solche Entity Framework-Klassen:

namespace Microsoft.AspNet.Identity.EntityFramework
{
public class IdentityUserLogin
{
    public IdentityUserLogin();

    public virtual string LoginProvider { get; set; }
    public virtual string ProviderKey { get; set; }
    public virtual IdentityUser User { get; set; }
    public virtual string UserId { get; set; }
}

}

Ich meine eigene Klasse ApplicationUserLogin, wo ich verändert die Benutzer-Eigenschaft auf einen Typ ApplicationUser, das hat nicht funktioniert entweder.

Dies ist, wo ich stecken geblieben bin. Ich per e-Mail und bat um Hilfe und wurde vorgeschlagen, um zu schreiben, meine eigenen UserStore Klasse Umsetzung der IUserStore-Schnittstelle. Ist das die einzige Möglichkeit zu erweitern, den EF code-first-Datenbank, asp.net Identität schafft oder bin ich da in der Nähe? Könnte ich vielleicht einfach weiter meine Benutzerkonten in einer Datenbank und der rest in anderen, aber ich würde es vorziehen, diese zu arbeiten.

Ach ja, und das ist der Artikel, den ich verwendet habe sind hauptsächlich (wie ich schon sagte, ich es geschafft, workin auf einem standard-mvc-controller):
http://blogs.msdn.com/b/webdev/archive/2013/10/20/building-a-simple-todo-application-with-asp-net-identity-and-associating-users-with-todoes.aspx

InformationsquelleAutor Ashkan Hovold | 2014-01-21

Schreibe einen Kommentar