Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

503
Visualizações
Reclamos de Owin: agregue múltiples ClaimTypes.Role

Tengo una aplicación en la que a los usuarios se les pueden asignar los siguientes roles:

  • superadministrador
  • Administración
  • Usuario

Un usuario puede haber asignado dos o más funciones, p. tanto SuperAdmin como Usuario. Mi aplicación usa reclamos y, por lo tanto, también quiero autenticar los roles de usuario a través de reclamos. me gusta:

 [Authorize(Roles="Admin")]

Lamentablemente, no sé cómo puedo agregar varios roles a mi ClaimTypes.Role. Tengo el siguiente código:

 var identity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, name), new Claim(ClaimTypes.Email, email), new Claim(ClaimTypes.Role, "User", "Admin", "SuperAdmin") }, "ApplicationCookie");

Como puede ver, traté de agregar más roles para ilustrar, pero obviamente está hecho de manera incorrecta y, por lo tanto, no funciona. Por lo tanto, cualquier ayuda es muy apreciada.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Una identidad de notificaciones puede tener varias notificaciones con el mismo ClaimType. Eso hará posible usar el método HasClaim para verificar si un rol de usuario específico está presente.

 var identity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, name), new Claim(ClaimTypes.Email, email), new Claim(ClaimTypes.Role, "User"), new Claim(ClaimTypes.Role, "Admin"), new Claim(ClaimTypes.Role,"SuperAdmin") }, "ApplicationCookie");
over 4 years ago · Santiago Trujillo Relatório

0

@Parameswar Rao explicó bien pero en caso de roles dinámicos

Por ejemplo, un objeto de usuario ya tiene un rol de propiedad de tipo lista como

ingrese la descripción de la imagen aquí

luego usando funciones locales

 ClaimsIdentity getClaimsIdentity() { return new ClaimsIdentity( getClaims() ); Claim[] getClaims() { List<Claim> claims = new List<Claim>(); claims.Add(new Claim(ClaimTypes.Name, user.UserName)); foreach (var item in user.Roles) { claims.Add(new Claim(ClaimTypes.Role, item)); } return claims.ToArray(); } } var tokenDescriptor = new SecurityTokenDescriptor { Subject = getClaimsIdentity() }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda