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 establecer la página de inicio de sesión como página de inicio predeterminada en .net 5 razor pages?

Soy nuevo en las páginas de Razor y estoy creando una pequeña aplicación web en .Net Core 5 con autenticación individual. Quiero que cada vez que se cargue mi aplicación, se abra la página de inicio de sesión como página de destino y luego, después de iniciar sesión, se redirija a la página de inicio.

Aquí está el código que añadí en mi archivo Startup.cs

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // Este método es llamado por el tiempo de ejecución. Utilízalo para agregar servicios al contenedor.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddInfrastructure(Configuration);
        services.AddMvc().AddRazorPagesOptions(options =>
        {
            options.Conventions.AddAreaPageRoute("Identity", "/Account/Login", "");
        });
        services.AddRazorPages();
    }

    // Este método es llamado por el tiempo de ejecución. Utilízalo para configurar el pipeline de solicitudes HTTP.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
        }

        app.UseStaticFiles();

        app.UseRouting();

        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {                   
            endpoints.MapRazorPages();
        });
    }
}

El problema es que después de iniciar sesión y registrarse correctamente, la aplicación no se redirige a la página de inicio. Permanece en la página de inicio de sesión.

¿Alguien puede indicarme qué estoy haciendo mal?

¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que has agregado el código para redireccionar a la página de inicio de sesión en Startup.cs correctamente. Sin embargo, también necesitas agregar código para redireccionar a la página principal después de iniciar sesión correctamente. Aquí te muestro cómo hacerlo:

    1. En el método ConfigureServices() de Startup.cs, agrega el siguiente código para configurar la autenticación:
    services.AddAuthentication()
        .AddCookie(options => 
        {
            options.LoginPath = "/Account/Login";
        });
    
    1. En el método Configure() de Startup.cs, agrega el siguiente código para configurar el middleware de autenticación:
    app.UseAuthentication();
    
    1. Después de que el usuario inicie sesión correctamente, en el método OnPostAsync() de Login.cshtml.cs, agrega el siguiente código para redireccionar a la página principal:
    if (result.Succeeded)
    {
        _logger.LogInformation("Usuario ha iniciado sesión.");
        return LocalRedirect("~/");
    }
    

    Aquí, “~/ ” se refiere a la página principal de tu aplicación.

    Con estos cambios, tu aplicación debería redirigir ahora a la página principal después de iniciar sesión correctamente.

Comments are closed.