2017-10-17 2 views
1

J'ai créé un nouveau projet ASP.NET MVC 5 dans Visual Studio 2013 (Express pour le Web), et une base de données que j'importer, mais lorsque je tente de valider le rôle de l'utilisateur à l'aideComment utiliser les rôles créés dans SQL Server dans ASP.NET MVC après l'importation de la base de données?

if(User.IsInRole("Admin")) 

il est encore IDENTIFIER l'utilisateur en tant qu'utilisateur régulier, et non en tant qu'administrateur. Je me demande comment je peux obtenir les rôles de l'utilisateur dans un contrôleur après l'importation de la base de données?

Et, comment puis-je m'assurer que les rôles sont importés dans mon application ASP.NET MVC?

+0

vous devez configurer le gestionnaire de rôles, voir cette réponse: https://stackoverflow.com/a/39139606/5519026 – Ziyad

Répondre

0

Assurez-vous d'avoir les données nécessaires dans votre base de données. Vous devez être sûr que le rôle est dans la table "AspNetRoles" et que l'utilisateur est lié dans la table "AspNetUserRoles". Pour vous assurer que vous avez des données, vous pouvez utiliser les graines suivantes:

public static class RoleSeeder 
{ 
    public static void Seed() 
    { 
     CreateRole("Admin", "Administratie", "Administratie"); 
     ... 
    } 

    private static void CreateRole(string name, string description, string group) 
    { 
     using (var db = new DbContext()) 
     { 
      if (!db.Roles.Any(r => r.Name == name)) 
      { 
       var role = new Role { Name = name, Description = description, Group = group }; 

       var store = new RoleStore<Role>(db); 
       var manager = new RoleManager<Role>(store); 

       manager.Create(role); 
      } 
      else 
      { 
       var store = new RoleStore<Role>(db); 
       var manager = new RoleManager<Role>(store); 

       var dbRole = manager.FindByName(name); 
       dbRole.Description = description; 
       dbRole.Group = group; 

       manager.Update(dbRole); 
      } 
     } 
    } 
} 

Aucune raison d'écrire votre propre gestionnaire de rôles.