GOOGLE ADS

sábado, 23 de abril de 2022

La sesión no funciona en ASP.Net Core Web API

Estoy tratando de usar la capacidad de sesión en ASP.NET Core Web API (.NET Core 3.1). Como prueba, configuré mi proyecto de la siguiente manera.

  • Instale el paquete NuGet Microsoft.AspNetCore.Session.


  • Agregue métodos de servicio ConfigureServicesen Startup.cs.


  • services.AddDistributedMemoryCache();
    services.AddSession();

  • Usar sesión en Configureen Startup.cs:

  • public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
    app.UseSession();

    if (env.IsDevelopment())
    {
    app.UseDeveloperExceptionPage();
    }
    app.UseHttpsRedirection();
    app.UseRouting();
    app.UseAuthorization();
    app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
    }

  • Establecer una variable de sesión en una de mis rutas en mi controlador.

  • HttpContext.Session.SetString("currentUser", "value1");

    Sin embargo, sigo recibiendo este error.

    {"type":"NullReferenceException","message":"Referencia de objeto no establecida en una instancia de un objeto.","stackTrace":" en Api.Routes.MainRoute.Handler(registrador ILogger`1) en MainRoute.cs:línea 16\n en Api.Controllers.MainController.MainRoute(autorización de cadena) en MainController.cs:línea 264"}

    ¿Como puedo solucionar este problema?


    Solución del problema

    El orden del middleware es importante. Llame a UseSession después de UseRouting y antes de MapRazorPages y MapDefaultControllerRoute.

    Gestión de sesiones y estados

    Cambia tu código a este:

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
    if (env.IsDevelopment())
    {
    app.UseDeveloperExceptionPage();
    }
    app.UseHttpsRedirection();
    app.UseRouting();
    app.UseSession();
    app.UseAuthorization();
    app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
    }

    No hay comentarios:

    Publicar un comentario

    Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

    Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...