Sto lavorando ad un nuovo progetto in ASP.NET MVC 5 con Entity Framework 6 Codice First.In ASP.NET MVC, spostare modelli di autenticazione a una libreria di classi
STATO ATTUALE
ho due progetti all'interno di una soluzione. Uno è il front-end (MVC) e l'altro è una libreria di classi che spero possa ospitare tutte le mie classi Model (non ViewModels).
Come tutti sappiamo, quando si avvia un nuovo progetto MVC, i modelli di identità si trovano nella cartella [Modelli]. Dato che questi logicamente appartengono al mio progetto di libreria di classi, mi piacerebbe trasferirli lì.
quello che ho cercato
All'interno della [Autenticazione] cartella Sono andato avanti e ha creato una classe ApplicationUser.cs
. Ora semplicemente guardando IdentityModels.cs
so che avrei bisogno di fare riferimento allo Microsoft.AspNet.Identity
tra le altre cose.
Quindi, fare clic con il pulsante destro del mouse sul Riferimento per il progetto BB.DOMAIN e fare clic su {Aggiungi riferimento}. Ma non riesco a vedere la libreria Microsoft.AspNet.Identity
da nessuna parte!
chiarimenti richiesti
sto facendo la cosa giusta qui? Il mio pensiero attuale è che sto facendo qualcosa che normalmente non dovresti fare! Ma poi ovunque tu legga, ti viene detto che tutte le tue entità centrali dovrebbero generalmente sedersi in un posto.
Un'altra cosa che mi sono confuso circa già, ma non ho avuto modo è questo:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext() : base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
Quando arrivo di aggiungere ApplicationDbContext.cs
alla mia cartella [Autenticazione] in BB.DOMAIN. Per fare in modo che tutto si trovi nello stesso database, devo semplicemente cambiare base("DefaultConnection")
in qualunque sia il nome della mia stringa di connessione nell'altra mia classe DbContext
che si trova all'interno della cartella [Context]?
Voglio che tutte le mie entità guidino questa applicazione in un unico database.
Grazie SilverFox. Pensandoci, devo aggiungere 'ApplicationDbContext' se ho già un' BBContext' di mio? Perché avrei bisogno di 2 contesti? O è un must per l'autenticazione? – Ciwan
Bene, 'ApplicationDbContext' è stato utilizzato da' ApplicationUserManager' per memorizzare i dati dell'utente. Se vuoi unirlo a 'BBContext', assicurati di cambiare tutti gli usi in' BBContext'. – silverfox
grazie, o posso tenerlo e basta dire di usare la stessa stringa di connessione del mio altro contesto giusto? – Ciwan