Rôle de Gestion en ASP net MVC 5 (Microsoft.AspNet.D'identité)

ASP MVC5 RC je n'ai pas le rôle du système de travail.
Ma base de données à tous les besoins des tables un rôle, mais l'épreuvage si l'utilisateur est dans le rôle toujours return false (pas de SQL exception ou quelque chose)!?

Ai-je besoin d'activer le rôle du système 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'ai aussi essayer de construire un personnalisé atténuer comme le IIdentity.GetUserId() méthode d'extension de Microsoft.AspNet.Identity.Owin espace de Noms.

namespace Microsoft.AspNet.Identity
{
   public static class IdentityExtensions
   {
       public static string 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 demande de Type RoleClaimType est toujours null 🙁
Je suis vraiment coincé avec ce.

Merci pour votre aide! Steffen

Avez-vous essayé de l'Utilisateur.IsInRole("chaîne de nom de rôle")?
Ou vous pourriez essayer: string[] userroles = Rôles.GetRolesForUser("username") - ce doit retourner un tableau dans userroles que vous pouvez passer en revue pour déterminer s'il contient le rôle spécifique.

OriginalL'auteur Gordon2001 | 2013-09-30