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

177
Visualizações
¿Es posible asociar condicionalmente un atributo a una clase en función del valor booleano cargado desde appsettings.json?

Tengo algunas clases de modelos de página y me gustaría hacer que las páginas controladas por estos modelos sean accesibles de forma anónima o solo visibles si el usuario está autenticado en función de un condicional booleano que está configurado en mi archivo appsettings.json . Algo como lo siguiente (la sintaxis es obviamente incorrecta, pero espero que demuestre claramente mi intención).

 using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.Logging; boolCondition ? [Authorize] : [AllowAnonymous] public class IndexModel : PageModel { ... }

Según esta respuesta aquí , aunque es un poco antigua, en realidad no estoy seguro de si lo que estoy buscando hacer es posible en C#. Y para ser sincero, esa respuesta me supera un poco, así que no sé qué tan aplicable es a mi situación.

Otro posible enfoque que me vino a la mente fue crear mi propia clase de atributo personalizado y, allí, devolver de forma condicional AuthorizeAttribute o AllowAnonymousAttribute en función de la condición booleana. Pero incluso entonces, todavía no estoy seguro de si eso funcionará, ya que parece depender de una condición de tiempo de ejecución.

Cualquier ayuda y consejo es apreciado.

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

0

Al usar una política de autorización, puede cambiar lo que eso significa en el inicio (o dentro de un servicio IConfigureOptions<AuthorizationOptions> ).

Puede cambiar la política predeterminada para todos los atributos [Authorize] ;

 services.AddAuthorization(o => { var builder = new AuthorizationPolicyBuilder(); if (<something>){ builder.RequireAssertion(c => true); }else{ builder.RequireAuthenticatedUser(); } o.DefaultPolicy = builder.Build(); });

O introduzca una nueva política que solo se aplique a algunos [Authorize(Policy="Name")] .

 services.AddAuthorization(o => { o.AddPolicy("Name", builder => { if (<something>){ builder.RequireAssertion(c => true); }else{ builder.RequireAuthenticatedUser(); } }); });
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