Gestion des rôles dans ASP MVC 5 (Microsoft.AspNet.Identity)

dans ASP MVC5 RC, le système de rôles ne fonctionnait pas. Ma firebase database a toutes les tables de besoins. Un rôle existe, mais la vérification si l’utilisateur est dans le rôle retourne toujours false (aucune exception SQL ou autre) !?

Ai-je besoin d’activer le système de rôle pour IPrincipal quelque part?

Code de test:

 AccountController accCont = new AccountController(); // check role exist : result = true var roleExist = await accCont.IdentityManager.Roles.RoleExistsAsync("61c84919-72e2-4114-9520-83a3e5f09de1"); // try find role by name : result = role object var role = await accCont.IdentityManager.Roles.FindRoleByNameAsync("ProjectAdministrator"); // check with AccountController instance : result = true var exist = await accCont.IdentityManager.Roles.IsUserInRoleAsync(User.Identity.GetUserId(), role.Id); // check if current user is in role : result (both) = false???? var inRole = User.IsInRole(role.Id); var inRole2 = User.IsInRole(role.Name); 

J’essaie également de créer une IIdentity.GetUserId() personnalisée telle que la méthode d’extension IIdentity.GetUserId() partir de Microsoft.AspNet.Identity.Owin Namespace.

 namespace Microsoft.AspNet.Identity { public static class IdentityExtensions { public static ssortingng IsUserInRole(this IIdentity identity) { if (identity == null) { throw new ArgumentNullException("identity"); } ClaimsIdentity identity2 = identity as ClaimsIdentity; if (identity2 != null) { var result = identity2.FindFirstValue(IdentityConfig.Settings.GetAuthenticationOptions().RoleClaimType); return null; // later result } return null; } } } 

Mais le résultat de la revendication Type RoleClaimType est toujours null 🙁 Je suis vraiment coincé avec cela.

Merci de votre aide! Steffen

J’essaie de comprendre comment utiliser les rôles dans MVC 5 moi-même, c’est ce qui m’a amené ici. Je ne peux pas répondre à votre question, mais consultez ce lien. La solution téléchargée fonctionne immédiatement et j’ai déjà été en mesure de copier-coller du code et de le faire fonctionner dans ma propre application. Maintenant, j’essaie de bien comprendre ce que ça fait.

http://www.typecastexception.com/post/2013/11/11/Extending-Identity-Accounts-and-Implementing-Role-Based-Authentication-in-ASPNET-MVC-5.aspx

Cela ne répond peut-être pas à votre question, mais au moins c’est une solution totalement opérationnelle qui fonctionne comme décrit sans trop de soucis, c’est donc un bon sharepoint départ.

User.IsInRole examine essentiellement les revendications de l’utilisateur actuellement connecté. À quoi ressemble votre logique de connexion? C’est ce qui est responsable de la frappe du cookie qui se transforme en identité de l’utilisateur. La revendication de rôle doit être correctement définie pour que la méthode IsInRole fonctionne correctement.