es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo configurar la aplicación Blazor para devolver solo el archivo index.html para usuarios autenticados.

Tenemos una aplicación existente de ASP.NET Core (.NET 5) que utiliza Angular como framework de IU. Hemos creado una biblioteca cliente Blazor WASM que queremos utilizar en esta aplicación junto con el framework Angular ya existente.

Siguiendo la documentación, así es como lo configuramos en el método Startup.Configure para “servir” la aplicación de Blazor desde el directorio dedicado “blazor-app” en wwwroot.

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ...
    app.UseBlazorFrameworkFiles("/blazor-app");
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
        endpoints.MapFallbackToFile("blazor-app/index.html");
    });
}

¿Cómo podemos configurar la aplicación de Blazor para quue su index.html solo sea devuelto para usuarios autenticados?

¿Por ejemplo, algo así?

[Authorize]
public class ClientController
{
    public IActionResult ClientApp()
    {
        // devuelve el index.html de la aplicación de Blazor
    }
}
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para configurar la aplicación Blazor de manera que su index.html solo se devuelva para usuarios autenticados, podría integrarla en un atributo Authorize en una acción del controlador, como se muestra en el fragmento de código de ejemplo. El atributo Authorize requerirá que un usuario esté autenticado antes de acceder a la acción del controlador. Dentro de la acción, puede devolver el archivo index.html de la aplicación Blazor.

    Alternativamente, podría personalizar este enfoque para adaptarlo a sus requisitos específicos de autenticación, como permitir que ciertos roles o permisos de usuario accedan a la aplicación Blazor.

Comments are closed.