Beispiel #1
0
        private static ClaimsIdentity SetClaimsIdentity(OAuthGrantResourceOwnerCredentialsContext context, ApplicationUser user)
        {
            var identity = new ClaimsIdentity("JWT");

            identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
            identity.AddClaim(new Claim("sub", context.UserName));


            var dbcontext     = new FakeTwitterContext();
            var getRolesUsers = dbcontext.Roles.SelectMany(r => r.Users).Where(ur => ur.UserId == user.Id);


            var getRoles = dbcontext.Roles.Join(
                getRolesUsers,
                r => r.Id,
                ru => ru.RoleId,
                (qRole, qRoleUser) =>
                new
            {
                UserId   = qRoleUser.UserId,
                RoleId   = qRole.Id,
                RoleName = qRole.Name
            }
                ).Where(roluser => roluser.UserId == user.Id);

            /*
             * foreach (var role in getRoles)
             * {
             *  System.Console.WriteLine(String.Format("User: {0}\tRoleId: {1}\tRoleName: {2}", role.UserId, role.RoleId, role.RoleName));
             * }
             */

            //                                              //Exception
            //                                              //The entity type IdentityUser is not part of the model for
            //                                              //      the current context.
            // var userRoles = context.OwinContext.Get<TwitterUserManager>().GetRoles(user.Id);
            foreach (var role in getRoles)
            {
                identity.AddClaim(new Claim(ClaimTypes.Role, role.RoleName));
            }

            return(identity);
        }