L'extension de IdentityUser avec EF Code-première sur VS 2013 SPA AccountController

Moi et un camarade de classe travaillent sur une application Phonegap à l'aide d'une API Web comme notre backend. Précédemment, nous avions un prototype fonctionnant à l'aide de l'ancienne appartenance de la fonction sur un MVC4 modèle.

Nous avons trouvé quelques très bons tutoriels sur la façon de prolonger l'IdentityUser sur un contrôleur mvc. Nous avons réussi à obtenir que cela fonctionne, mais d'aller vers l'API accountcontroller qui vient avec le VS 2013 SPA modèle, nous n'avons pas réussi à le faire fonctionner. Pour simplifier notre problème ici est essentiellement ce que nous voulons faire.

Permet de dire que nous avons un Film de classe comme ceci:

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

J'ai créé le ApplicationUser comme ceci(extrait de la VS 2013 MVC modèle avec compte individuel):

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

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

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

J'ai ajouté cette ligne dans Application_Start mondiale.asax:

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

La AppDbInit classe:

public class AppDbInit : DropCreateDatabaseAlways<ApplicationDbContext>
{

}

J'ai changé le UserManagerFactory en Démarrage.Auth.cs:

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

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

Dans le AccountController.cs fichier j'ai remplacé toutes les occurrences de IdentityUser avec ApplicationUser à la place. Une fois que ce fut fait, j'ai commencé à recevoir des erreurs par les fichiers de classe à l'intérieur de Microsoft.AspNet.L'identité.EntityFramework qui sont à l'aide de la IdentityUser classe en disant qu'il ne peut pas convertir IdentityUser à ApplicationUser.
L'un de ces entityframework classes est:

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; }
}

}

J'ai créé ma propre classe ApplicationUserLogin où j'ai changé la propriété de l'Utilisateur à l'une de type ApplicationUser, cela ne fonctionne pas non plus.

C'est là que je suis bloqué. J'ai envoyé un courriel et demandé de l'aide et a suggéré d'écrire mon propre UserStore classe de mise en œuvre de la IUserStore interface. Est-ce la seule façon de prolonger l'EF code-première base de données que asp.net l'Identité crée ou suis-je? Je pourrais peut-être garder mes comptes d'utilisateur dans une base de données, et le reste dans l'autre, mais je préfère à obtenir que cela fonctionne.

Oh, et c'est l'article que j'ai principalement (qui, comme je l'ai dit, j'ai réussi à obtenir workin sur un contrôleur mvc):
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

OriginalL'auteur Ashkan Hovold | 2014-01-21