ASP.NET Identité fondamentale Ajouter des rôles d'utilisateur au démarrage de l'application

Dans un ASP.NET application de Base, je veux créer un certain nombre de rôles en tant que base pour gérer les différents utilisateurs des autorisations. Malheureusement, la documentation informer détaillée comment utiliser des rôles personnalisés, par exemple dans les contrôleurs/actions, mais pas comment les créer. J'ai découvert que je peux utiliser RoleManager<IdentityRole> pour cela, où l'instance est automatiquement injecté dans un contrôleur-constructeur, lors de sa définis et ASP.NET de Base de l'identité est enregistrée dans l'application.

Ce permettez-moi d'ajouter un rôle personnalisé comme ceci:

var testRole = new IdentityRole("TestRole");
if(!roleManager.RoleExistsAsync(testRole.Name).Result) {
    roleManager.CreateAsync(testRole);
}

Il fonctionne et créer le rôle dans la base de données. Mais cette vérification sera toujours de créer de surcharge sur la base de données, l'appel de la contrôleur/action. Je tiens donc à vérifier une fois après ma demande a commencé, si la coutume rôle existe et les ajouter. Le ConfigureServices méthode de Démarrage.cs semble bon pour cela.

Mais: Comment puis-je créer une instance de la RoleManager<IdentityRole> classe pour faire cela? Je voudrais utiliser une approche des meilleures pratiques ici et de ne pas déconner par la création d'selon les cas sur le mien, qui semble causer beaucoup de travail car il n'est pas bon pour rédaction et ne manquera pas de suivre les meilleures pratiques, puisqu'ASP.NET de Base est d'utiliser l'injection de dépendance pour des choses comme ceci (qui est également raisonnable dans mon oppinion).

En d'autres termes: j'ai besoin d'utiliser dependeny injection à l'extérieur d'un contrôleur.

  • vous pourriez être intéressé à mon projet qui permet la gestion de l'Identité des utilisateurs, des rôles, et des revendications de la github.com/joeaudette/cloudscribe
InformationsquelleAutor Lion | 2016-10-08