Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

495
Vistas
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.

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

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");
about 4 years ago · Santiago Trujillo Denunciar

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() }
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda