Ajouter un rôle dans ASP.NET Identité
Comment puis-je ajouter un Rôle dans la nouvelle ASP.NET système d'Identité (1.0)?
Il y a un UserStore
de classe mais pas de RoleStore
classe.
Je ne trouve pas de documentation sur cette question.
- Il y a un Simple Rôle de fournisseurs qui vous permet de restreindre l'accès à certaines parties de votre application par les Rôles. Vous pouvez facilement créer des Rôles tels que “Admin” et d'ajouter des Utilisateurs à des Rôles.
Vous devez vous connecter pour publier un commentaire.
RoleManagerFactory = () => new RoleManager<IdentityRole>(new RoleStore<IdentityRole>());
puis copiez l'utilisation de la UserManagerFactory.De départ avec le .NET Framework 4.5, Windows Identity Foundation (WIF) a été pleinement intégrée dans le .NET Framework.
Je voudrais des conseils à examiner la possibilité, à mon avis, le préféré, pour mettre en œuvre l'Autorisation par le biais de Revendications (Exprimant les Rôles que les Revendications).
Lorsque le IsInRole() la méthode est appelée, il y a un contrôle pour voir si l'utilisateur courant a ce rôle.
En prenant en charge les revendications des applications, le rôle est exprimée par une déclaration de rôle de type qui devrait être disponible dans le jeton.
Le rôle type de revendication est exprimé en utilisant l'URI suivante:
"http://schemas.microsoft.com/ws/2008/06/identity/claims/role"
Donc, à partir de la UserManager vous pouvez faire quelque chose comme ceci (sans les RoleManager):
Revendications peuvent simplifier et d'augmenter la performance de l'authentification et de l'autorisation des processus.
Vous pouvez utiliser les rôles stockées en tant que prétend éliminer le back-end de requêtes à chaque fois que l'autorisation a lieu.
À l'aide des Sinistres, vous n'aurez pas besoin de la RoleStore plus (au moins l'équivalent d'autorisation à des fins...)
J'ai utilisé ci-dessous des extraits dans un échantillon asp.net page web page_load pour commencer à saisir la façon ASP Identité œuvres
De cours ci-dessous ApplicationDbContext est généré automatiquement ASP.NET 4.5+ modèles comme ci-dessous
Également Créer des applications Rôle de Gestionnaire de classe trop
également ajouter la ligne ci-dessous dans votre démarrage.Auth.cs => ConfigureAuth(IAppBuilder app) méthode
Et puis dans votre contrôleur:
Je suis nouvelle dans cette Identité de Trucs et je ne suis pas sûr si c'est nécessaire ou je l'ai fait nettoyer et à droite, mais ces mesures ont travaillé pour moi
ASP.NET l'identité est de revendications à l'égard de rôles. Que vraiment confus moi parce que dans le système précédent vous avez configuré la composition et le rôle des fournisseurs dans le web.config.
Le problème pour moi est que j'ai un code comme ceci:
Heureusement, cette logique fonctionne toujours. Vous pouvez voir la logique dans le
CreateAsync
fonction dans ClaimsIdentityFactory.cs qui est enMicrosoft.AspNet.Identity.Core
. L'un des arguments estUserManager
. Il lui demande s'ilSupportsUserRole
et si oui, alors il appelleGetRolesAsync
et ajoute chaque rôle comme une revendication de laClaimIdentity
. Il n'est pas nécessaire de le faire vous-même.IsInRole
utilise des revendications comme décrit ici:http://msdn.microsoft.com/en-us/library/hh545448.aspx
RoleManager
; il est situé dans leMicrosoft.AspNet.Identity
espace de noms et vous trouverez qu'il est utilisé dans plusieurs de l'échantillon de départ applications je crois.