Dalla tua domanda non posso determinare se si sta utilizzando le stesse strutture (MVC & EF).
Recentemente ho creato una soluzione MVC + EF utilizzando ApplicationUser personalizzati & IdentityRoles. ApplicationUser deriva da "Microsoft.AspNet.Identity.EntityFramework.IdentityUser". ApplicationRoles sono implementati senza modifiche.
Ho la seguente classe:
// Configure the used in the application. RoleManager is defined in the ASP.NET Identity core assembly
public class ApplicationRoleManager : RoleManager<IdentityRole>
{
public ApplicationRoleManager(IRoleStore<IdentityRole, string> roleStore)
: base(roleStore)
{
}
public static ApplicationRoleManager Create(IdentityFactoryOptions<ApplicationRoleManager> options, IOwinContext context)
{
return new ApplicationRoleManager(new RoleStore<IdentityRole>(context.Get<ApplicationDbContext>()));
}
}
entro configuration.cs (migrazioni) ==> su 'update-database' questo verrà eseguito
var roleStore = new RoleStore<IdentityRole>(context);
var roleManager = new RoleManager<IdentityRole>(roleStore);
var applicationRoleAdministrator = new IdentityRole("Administrator");
if (!roleManager.RoleExists(applicationRoleAdministrator.Name))
{
roleManager.Create(applicationRoleAdministrator);
}
// do some logic to find your applicationUserAdministrator
var applicationUserAdministrator = userManager.FindByName("Administrator");
userManager.AddToRole(applicationUserAdministrator.Id, applicationRoleAdministrator.Name);
startup.auth.cs withing il collegamento verso il RoleManager:
app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);
fonte
2014-10-03 07:50:35
esatta stesso problema che sto avendo, se uso '[Autorizza (ruoli = "Admin")]' ottengo il seguente errore: 'La bandiera di accesso istanza utente non è supportato in questa versione di SQL Server . La connessione verrà chiusa' – Zapnologica